49 lines
1.2 KiB
Go
49 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) 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,
|
||
|
|
TargetType: models.PublishTargetType(row.TargetType),
|
||
|
|
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,
|
||
|
|
TargetType: int64(target.TargetType),
|
||
|
|
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
|
||
|
|
}
|