From 8ac6e1ac79ad1d0fdb264d5d6db571d67de2ff41 Mon Sep 17 00:00:00 2001 From: John O'Keefe Date: Mon, 20 Apr 2026 08:57:42 -0400 Subject: [PATCH] refactor(handlers): replace temporary variable pointer pattern with new() builtin Simplify pointer creation across kobo, koreader, and queue handlers by replacing the two-step pattern (assign to local, then take address) with inline new() calls. This reduces verbosity without changing behavior: Before: remaining := int(a - b) pagesRemaining = &remaining After: pagesRemaining = new(int(a - b)) Covers page calculations, chapter/progress fields, UUID formatting, and timestamp string conversions. --- internal/handlers/kobo.go | 3 +-- internal/handlers/koreader.go | 18 ++++++------------ internal/handlers/queue.go | 6 ++---- 3 files changed, 9 insertions(+), 18 deletions(-) diff --git a/internal/handlers/kobo.go b/internal/handlers/kobo.go index a0eb73e..6cecc32 100644 --- a/internal/handlers/kobo.go +++ b/internal/handlers/kobo.go @@ -303,8 +303,7 @@ func (h *KoboHandler) Initialization(c *echo.Context) error { lastModified = progress.LastReadAt.Time.Format(time.RFC3339) } if progress.TotalPages.Valid && progress.CurrentPage.Valid { - remaining := int(progress.TotalPages.Int32 - progress.CurrentPage.Int32) - pagesRemaining = &remaining + pagesRemaining = new(int(progress.TotalPages.Int32 - progress.CurrentPage.Int32)) } } diff --git a/internal/handlers/koreader.go b/internal/handlers/koreader.go index 3bd3d71..c4db8f9 100644 --- a/internal/handlers/koreader.go +++ b/internal/handlers/koreader.go @@ -601,24 +601,19 @@ func (h *KOReaderHandler) GetMetadata(c *echo.Context) error { progressData.Epubcfi = &progress.Epubcfi.String } if progress.Chapter.Valid { - ch := int(progress.Chapter.Int32) - progressData.Chapter = &ch + progressData.Chapter = new(int(progress.Chapter.Int32)) } if progress.ChapterProgress.Valid { - cp := progress.ChapterProgress.Float64 - progressData.ChapterProgress = &cp + progressData.ChapterProgress = new(progress.ChapterProgress.Float64) } if progress.CharacterOffset.Valid { - co := int64(progress.CharacterOffset.Int64) - progressData.Character = &co + progressData.Character = new(int64(progress.CharacterOffset.Int64)) } if progress.CurrentPage.Valid { - cp := int(progress.CurrentPage.Int32) - progressData.Page = &cp + progressData.Page = new(int(progress.CurrentPage.Int32)) } if progress.TotalPages.Valid { - tp := int(progress.TotalPages.Int32) - progressData.TotalPages = &tp + progressData.TotalPages = new(int(progress.TotalPages.Int32)) } annotations, err := h.db.GetAnnotationsForBook(c.Request().Context(), database.GetAnnotationsForBookParams{ @@ -698,8 +693,7 @@ func (h *KOReaderHandler) GetLibrary(c *echo.Context) error { if err == nil { percentRead = progress.Percentage.Float64 if progress.TotalPages.Valid && progress.CurrentPage.Valid { - remaining := int(progress.TotalPages.Int32 - progress.CurrentPage.Int32) - pagesRemaining = &remaining + pagesRemaining = new(int(progress.TotalPages.Int32 - progress.CurrentPage.Int32)) } if progress.LastReadAt.Valid { lastModified = progress.LastReadAt.Time.Format(time.RFC3339) diff --git a/internal/handlers/queue.go b/internal/handlers/queue.go index ee5a137..dcf7f85 100644 --- a/internal/handlers/queue.go +++ b/internal/handlers/queue.go @@ -310,8 +310,7 @@ func uuidPtrToString(u pgtype.UUID) *string { if !u.Valid { return nil } - s := uuid.UUID(u.Bytes).String() - return &s + return new(uuid.UUID(u.Bytes).String()) } func textPtrToString(t pgtype.Text) *string { @@ -325,6 +324,5 @@ func timestamptzPtrToString(t pgtype.Timestamptz) *string { if !t.Valid { return nil } - s := t.Time.Format("2006-01-02T15:04:05Z07:00") - return &s + return new(t.Time.Format("2006-01-02T15:04:05Z07:00")) }