Fixed site ownership
This commit is contained in:
parent
cb54057305
commit
50f7e9632e
20 changed files with 192 additions and 78 deletions
|
|
@ -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
|
||||
}
|
||||
|
|
@ -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
56
providers/db/targets.go
Normal 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,
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue