package db import ( "context" "time" "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, Created: time.Unix(row.CreatedAt, 0).UTC(), }, 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, Created: time.Unix(row.CreatedAt, 0).UTC(), } } 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, CreatedAt: timeToInt(site.Created), }) if err != nil { return err } site.ID = newID return nil } // No update query defined in sqlgen yet return nil } func (db *Provider) HasUsersAndSites(ctx context.Context) (bool, error) { nullBool, err := db.queries.HasUsersAndSites(ctx) if err != nil { return false, err } return nullBool.Valid && nullBool.Bool, nil }