From aa0e75d35f2a5e597a4b87b245ad4178ae74f23b Mon Sep 17 00:00:00 2001 From: Patrick Britton Date: Sun, 8 Feb 2026 14:02:00 -0600 Subject: [PATCH] fix: safe domains scan - use time.Time for timestamp columns instead of string --- .../internal/services/link_preview_service.go | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/go-backend/internal/services/link_preview_service.go b/go-backend/internal/services/link_preview_service.go index 0e7fa4c..bf0f695 100644 --- a/go-backend/internal/services/link_preview_service.go +++ b/go-backend/internal/services/link_preview_service.go @@ -15,6 +15,11 @@ import ( "github.com/rs/zerolog/log" ) +// formatTime formats a time.Time to a string for JSON output. +func formatTime(t time.Time) string { + return t.Format(time.RFC3339) +} + // LinkPreview represents the OG metadata extracted from a URL. type LinkPreview struct { URL string `json:"link_preview_url"` @@ -325,13 +330,13 @@ func (s *LinkPreviewService) SaveLinkPreview(ctx context.Context, postID string, // SafeDomain represents a row in the safe_domains table. type SafeDomain struct { - ID string `json:"id"` - Domain string `json:"domain"` - Category string `json:"category"` - IsApproved bool `json:"is_approved"` - Notes *string `json:"notes"` - CreatedAt string `json:"created_at"` - UpdatedAt string `json:"updated_at"` + ID string `json:"id"` + Domain string `json:"domain"` + Category string `json:"category"` + IsApproved bool `json:"is_approved"` + Notes *string `json:"notes"` + CreatedAt time.Time `json:"created_at"` + UpdatedAt time.Time `json:"updated_at"` } // ListSafeDomains returns all safe domains, optionally filtered. @@ -362,6 +367,7 @@ func (s *LinkPreviewService) ListSafeDomains(ctx context.Context, category strin for rows.Next() { var d SafeDomain if err := rows.Scan(&d.ID, &d.Domain, &d.Category, &d.IsApproved, &d.Notes, &d.CreatedAt, &d.UpdatedAt); err != nil { + log.Warn().Err(err).Msg("Failed to scan safe domain row") continue } domains = append(domains, d)