59 lines
1.2 KiB
Go
59 lines
1.2 KiB
Go
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
|
|
}
|