hugo-cms/providers/db/sites.go

61 lines
1.3 KiB
Go
Raw Normal View History

package db
import (
"context"
2025-01-27 10:48:40 +00:00
"lmika.dev/lmika/hugo-cms/gen/sqlc/dbq"
"lmika.dev/lmika/hugo-cms/models"
2025-03-29 10:54:14 +00:00
"lmika.dev/pkg/modash/moslice"
)
2025-03-29 10:54:14 +00:00
func (db *DB) ListSites(ctx context.Context) ([]models.Site, error) {
res, err := db.q.ListSites(ctx)
if err != nil {
return nil, err
}
return moslice.Map(res, dbSiteToSite), nil
}
func (db *DB) InsertSite(ctx context.Context, site *models.Site) error {
id, err := db.q.NewSite(ctx, dbq.NewSiteParams{
2025-01-31 22:42:32 +00:00
Name: site.Name,
Title: site.Title,
OwnerUserID: site.OwnerUserID,
Theme: site.Theme,
Props: []byte("{}"),
})
if err != nil {
return err
}
site.ID = id
return nil
}
2025-01-26 23:19:31 +00:00
func (db *DB) GetSite(ctx context.Context, id int64) (models.Site, error) {
site, err := db.q.GetSiteWithID(ctx, id)
if err != nil {
return models.Site{}, err
}
2025-03-29 10:54:14 +00:00
return dbSiteToSite(site), nil
2025-01-26 23:19:31 +00:00
}
2025-02-01 22:54:30 +00:00
func (db *DB) UpdateSite(ctx context.Context, site models.Site) error {
return db.q.UpdateSite(ctx, dbq.UpdateSiteParams{
ID: site.ID,
Name: site.Name,
Title: site.Title,
Theme: site.Theme,
})
}
2025-03-29 10:54:14 +00:00
func dbSiteToSite(site dbq.Site) models.Site {
return models.Site{
ID: site.ID,
OwnerUserID: site.OwnerUserID,
Name: site.Name,
Title: site.Title,
Theme: site.Theme,
}
}