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/entries/entries.go | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 pkg/entries/entries.go (limited to 'pkg/entries') diff --git a/pkg/entries/entries.go b/pkg/entries/entries.go new file mode 100644 index 0000000..2b0967b --- /dev/null +++ b/pkg/entries/entries.go @@ -0,0 +1,52 @@ +package entries + +import ( + "context" + "database/sql" + "fmt" + + "git.leonardobishop.net/history/pkg/database/sqlc" +) + +type Service interface { + CreateEntry(title, kind, url, description string) (*sqlc.Entry, error) + GetEntries() ([]sqlc.GetEntriesRow, error) +} + +type service struct { + db *sql.DB +} + +func NewService(db *sql.DB) Service { + return &service{ + db: db, + } +} + +func (s *service) CreateEntry(title, kind, url, description string) (*sqlc.Entry, error) { + queries := sqlc.New(s.db) + + entry, err := queries.CreateEntryWithKindName(context.Background(), sqlc.CreateEntryWithKindNameParams{ + Title: title, + Url: url, + Description: description, + Name: kind, + }) + + if err != nil { + return nil, fmt.Errorf("could not create entry: %w", err) + } + + return &entry, nil +} + +func (s *service) GetEntries() ([]sqlc.GetEntriesRow, error) { + queries := sqlc.New(s.db) + + entries, err := queries.GetEntries(context.Background()) + if err != nil { + return make([]sqlc.GetEntriesRow, 0), fmt.Errorf("could not get entries: %w", err) + } + + return entries, nil +} -- cgit v1.2.3-70-g09d2