weiro/providers/db/sites.go

59 lines
1.2 KiB
Go
Raw Normal View History

2026-02-19 11:29:44 +00:00
package db
import (
"context"
"lmika.dev/lmika/weiro/models"
"lmika.dev/lmika/weiro/providers/db/gen/sqlgen"
)
func (db *Provider) SelectSiteByID(ctx context.Context, id int64) (models.Site, error) {
row, err := db.queries.SelectSiteByID(ctx, id)
if err != nil {
return models.Site{}, err
}
return models.Site{
ID: row.ID,
OwnerID: row.OwnerID,
Title: row.Title,
Tagline: row.Tagline,
}, nil
}
func (db *Provider) SelectSitesOwnedByUser(ctx context.Context, ownerID int64) ([]models.Site, error) {
rows, err := db.queries.SelectSitesOwnedByUser(ctx, ownerID)
if err != nil {
return nil, err
}
sites := make([]models.Site, len(rows))
for i, row := range rows {
sites[i] = models.Site{
ID: row.ID,
OwnerID: row.OwnerID,
Title: row.Title,
Tagline: row.Tagline,
}
}
return sites, nil
}
func (db *Provider) SaveSite(ctx context.Context, site *models.Site) error {
if site.ID == 0 {
newID, err := db.queries.InsertSite(ctx, sqlgen.InsertSiteParams{
OwnerID: site.OwnerID,
Title: site.Title,
Tagline: site.Tagline,
})
if err != nil {
return err
}
site.ID = newID
return nil
}
// No update query defined in sqlgen yet
return nil
}