diff options
| author | Leonardo Bishop <me@leonardobishop.net> | 2025-09-09 22:44:09 +0100 |
|---|---|---|
| committer | Leonardo Bishop <me@leonardobishop.net> | 2025-09-09 22:44:09 +0100 |
| commit | f1741a7faa9538e9b12ac60e0fbf6c7721a36059 (patch) | |
| tree | 2b70b14fc20a8520718910a0cd2e0134790c6f53 /pkg/entries | |
Initial commit
Diffstat (limited to 'pkg/entries')
| -rw-r--r-- | pkg/entries/entries.go | 52 |
1 files changed, 52 insertions, 0 deletions
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 +} |
