From f1741a7faa9538e9b12ac60e0fbf6c7721a36059 Mon Sep 17 00:00:00 2001 From: Leonardo Bishop Date: Tue, 9 Sep 2025 22:44:09 +0100 Subject: Initial commit --- pkg/html/service.go | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 pkg/html/service.go (limited to 'pkg/html/service.go') diff --git a/pkg/html/service.go b/pkg/html/service.go new file mode 100644 index 0000000..cba3a6c --- /dev/null +++ b/pkg/html/service.go @@ -0,0 +1,50 @@ +package html + +import ( + "time" + + "git.leonardobishop.net/history/pkg/database/sqlc" +) + +type Service interface { + GenerateHtml([]sqlc.GetEntriesRow) (string, error) +} + +type service struct{} + +func NewService() Service { + return &service{} +} + +func (s *service) GenerateHtml(entries []sqlc.GetEntriesRow) (string, error) { + var str string + + var currentDate time.Time + + for _, entry := range entries { + date, err := time.Parse(time.DateTime, entry.Timestamp) + if err != nil { + return "", err + } + + if currentDate.Year() != date.Year() || currentDate.Month() != date.Month() { + str = str + "

" + date.Format("January 2006") + "

" + } + + currentDate = date + + str += "" + if entry.KindName == "starred" { + str += "" + } + str += "" + entry.KindEmoji + " " + entry.Title + "" + if entry.KindName == "starred" { + str += "" + } + str += " - " + entry.Description + "" + str += " - " + date.Format(time.DateOnly) + "" + str += "
" + } + + return str, nil +} -- cgit v1.2.3-70-g09d2