Made some changes to how index pages are made
This commit is contained in:
parent
ba12398d2f
commit
573517565d
14 changed files with 259 additions and 56 deletions
|
|
@ -5,6 +5,7 @@ import (
|
|||
"github.com/jackc/pgx/v5/pgtype"
|
||||
"lmika.dev/lmika/hugo-cms/gen/sqlc/dbq"
|
||||
"lmika.dev/lmika/hugo-cms/models"
|
||||
"lmika.dev/pkg/modash/momap"
|
||||
"lmika.dev/pkg/modash/moslice"
|
||||
)
|
||||
|
||||
|
|
@ -39,6 +40,20 @@ func (db *DB) GetBundleWithID(ctx context.Context, id int64) (models.Bundle, err
|
|||
return dbBundleToBundle(res), nil
|
||||
}
|
||||
|
||||
func (db *DB) GetSiteBundleInfo(ctx context.Context, siteID int64) (map[int64]models.BundleInfo, error) {
|
||||
res, err := db.q.GetSiteBundleInfo(ctx, siteID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return momap.FromSlice(res, func(bi dbq.GetSiteBundleInfoRow) (int64, models.BundleInfo) {
|
||||
return bi.BundleID, models.BundleInfo{
|
||||
BundleID: bi.BundleID,
|
||||
PageCount: int(bi.PageCount),
|
||||
IndexPageID: bi.IndexPageID.Int64,
|
||||
}
|
||||
}), nil
|
||||
}
|
||||
|
||||
func dbBundleToBundle(b dbq.Bundle) models.Bundle {
|
||||
return models.Bundle{
|
||||
ID: b.ID,
|
||||
|
|
|
|||
|
|
@ -16,6 +16,12 @@ var nameProvenanceToDBNameProvenance = map[models.NameProvenance]dbq.PageNamePro
|
|||
}
|
||||
var dbNameProvenanceToNameProvenance = momap.ReverseMap(nameProvenanceToDBNameProvenance)
|
||||
|
||||
var pageRoleToDBPageRole = map[models.PageRole]dbq.NullPageRole{
|
||||
models.NormalPageRole: {},
|
||||
models.IndexPageRole: {PageRole: dbq.PageRoleIndex, Valid: true},
|
||||
}
|
||||
var dbPageRoleToPageRole = momap.ReverseMap(pageRoleToDBPageRole)
|
||||
|
||||
func (db *DB) InsertPage(ctx context.Context, page *models.Page) error {
|
||||
|
||||
id, err := db.q.InsertPage(ctx, dbq.InsertPageParams{
|
||||
|
|
@ -23,6 +29,7 @@ func (db *DB) InsertPage(ctx context.Context, page *models.Page) error {
|
|||
BundleID: page.BundleID,
|
||||
Name: page.Name,
|
||||
NameProvenance: nameProvenanceToDBNameProvenance[page.NameProvenance],
|
||||
Role: pageRoleToDBPageRole[page.Role],
|
||||
Title: pgtype.Text{String: page.Title, Valid: page.Title != ""},
|
||||
Body: page.Body,
|
||||
State: dbq.PostState(page.State),
|
||||
|
|
@ -43,6 +50,7 @@ func (db *DB) UpdatePage(ctx context.Context, page *models.Page) error {
|
|||
SiteID: page.SiteID,
|
||||
BundleID: page.BundleID,
|
||||
Name: page.Name,
|
||||
Role: pageRoleToDBPageRole[page.Role],
|
||||
NameProvenance: nameProvenanceToDBNameProvenance[page.NameProvenance],
|
||||
Title: pgtype.Text{String: page.Title, Valid: page.Title != ""},
|
||||
Body: page.Body,
|
||||
|
|
@ -95,6 +103,7 @@ func dbPageToPage(p dbq.Page) models.Page {
|
|||
SiteID: p.SiteID,
|
||||
BundleID: p.BundleID,
|
||||
Name: p.Name,
|
||||
Role: dbPageRoleToPageRole[p.Role],
|
||||
NameProvenance: dbNameProvenanceToNameProvenance[p.NameProvenance],
|
||||
Title: p.Title.String,
|
||||
Body: p.Body,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue