weiro/providers/db/pubtargets.go

49 lines
1.1 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) SelectPublishTargetsOfSite(ctx context.Context, siteID int64) ([]models.SitePublishTarget, error) {
rows, err := db.queries.SelectPublishTargetsOfSite(ctx, siteID)
if err != nil {
return nil, err
}
targets := make([]models.SitePublishTarget, len(rows))
for i, row := range rows {
targets[i] = models.SitePublishTarget{
ID: row.ID,
SiteID: row.SiteID,
2026-02-20 06:39:58 +00:00
TargetType: row.TargetType,
2026-02-19 11:29:44 +00:00
BaseURL: row.BaseUrl,
TargetRef: row.TargetRef,
TargetKey: row.TargetKey,
}
}
return targets, nil
}
func (db *Provider) SavePublishTarget(ctx context.Context, target *models.SitePublishTarget) error {
if target.ID == 0 {
newID, err := db.queries.InsertPublishTarget(ctx, sqlgen.InsertPublishTargetParams{
SiteID: target.SiteID,
2026-02-20 06:39:58 +00:00
TargetType: target.TargetType,
2026-02-19 11:29:44 +00:00
BaseUrl: target.BaseURL,
TargetRef: target.TargetRef,
TargetKey: target.TargetKey,
})
if err != nil {
return err
}
target.ID = newID
return nil
}
// No update query defined in sqlgen yet
return nil
}