Fixed site ownership

This commit is contained in:
Leon Mika 2025-02-01 10:56:59 +11:00
parent cb54057305
commit 50f7e9632e
20 changed files with 192 additions and 78 deletions

View file

@ -1,42 +0,0 @@
package db
import (
"context"
"lmika.dev/lmika/hugo-cms/gen/sqlc/dbq"
"lmika.dev/lmika/hugo-cms/models"
"lmika.dev/pkg/modash/moslice"
)
func (db *DB) InsertPublishTarget(ctx context.Context, target *models.PublishTarget) error {
id, err := db.q.InsertPublishTarget(ctx, dbq.InsertPublishTargetParams{
SiteID: target.SiteID,
Role: dbq.TargetRole(target.Role),
TargetType: dbq.TargetType(target.Type),
Url: target.URL,
TargetRef: target.TargetRef,
})
if err != nil {
return err
}
target.ID = id
return nil
}
func (db *DB) GetPublishTargets(ctx context.Context, siteID int64) ([]models.PublishTarget, error) {
res, err := db.q.ListPublishTargetsOfRole(ctx, siteID)
if err != nil {
return nil, err
}
return moslice.Map(res, func(m dbq.PublishTarget) models.PublishTarget {
return models.PublishTarget{
ID: m.ID,
SiteID: m.SiteID,
Role: models.TargetRole(m.Role),
Type: models.TargetType(m.TargetType),
URL: m.Url,
TargetRef: m.TargetRef,
}
}), nil
}

View file

@ -11,7 +11,6 @@ func (db *DB) InsertSite(ctx context.Context, site *models.Site) error {
Name: site.Name,
Title: site.Title,
OwnerUserID: site.OwnerUserID,
Url: site.URL,
Theme: site.Theme,
Props: []byte("{}"),
})
@ -29,10 +28,10 @@ func (db *DB) GetSite(ctx context.Context, id int64) (models.Site, error) {
}
return models.Site{
ID: site.ID,
Name: site.Name,
Title: site.Title,
URL: site.Url,
Theme: site.Theme,
ID: site.ID,
OwnerUserID: site.OwnerUserID,
Name: site.Name,
Title: site.Title,
Theme: site.Theme,
}, nil
}

56
providers/db/targets.go Normal file
View file

@ -0,0 +1,56 @@
package db
import (
"context"
"lmika.dev/lmika/hugo-cms/gen/sqlc/dbq"
"lmika.dev/lmika/hugo-cms/models"
"lmika.dev/pkg/modash/moslice"
)
func (db *DB) InsertPublishTarget(ctx context.Context, target *models.PublishTarget) error {
id, err := db.q.InsertPublishTarget(ctx, dbq.InsertPublishTargetParams{
SiteID: target.SiteID,
Role: dbq.TargetRole(target.Role),
TargetType: dbq.TargetType(target.Type),
Url: target.URL,
TargetRef: target.TargetRef,
})
if err != nil {
return err
}
target.ID = id
return nil
}
func (db *DB) GetPublishTargets(ctx context.Context, siteID int64) ([]models.PublishTarget, error) {
res, err := db.q.ListTargetsOfSite(ctx, siteID)
if err != nil {
return nil, err
}
return moslice.Map(res, dbTargetToTarget), nil
}
func (db *DB) GetPublishTargetBySiteRole(ctx context.Context, siteID int64, role models.TargetRole) (models.PublishTarget, error) {
target, err := db.q.GetTargetOfSiteRole(ctx, dbq.GetTargetOfSiteRoleParams{
SiteID: siteID,
Role: dbq.TargetRole(role),
})
if err != nil {
return models.PublishTarget{}, err
}
return dbTargetToTarget(target), nil
}
func dbTargetToTarget(m dbq.PublishTarget) models.PublishTarget {
return models.PublishTarget{
ID: m.ID,
SiteID: m.SiteID,
Role: models.TargetRole(m.Role),
Type: models.TargetType(m.TargetType),
URL: m.Url,
TargetRef: m.TargetRef,
}
}