Started working on pages
This commit is contained in:
parent
e2f159e980
commit
ba12398d2f
30 changed files with 1391 additions and 145 deletions
55
services/sites/create.go
Normal file
55
services/sites/create.go
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
package sites
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"lmika.dev/lmika/hugo-cms/models"
|
||||
"time"
|
||||
)
|
||||
|
||||
func (s *Service) CreateSite(ctx context.Context, user models.User, name string) (models.Site, error) {
|
||||
// Create a new site
|
||||
newSite := models.Site{
|
||||
Name: normaliseName(name),
|
||||
OwnerUserID: user.ID,
|
||||
Title: name,
|
||||
Theme: "bear",
|
||||
}
|
||||
|
||||
_, ok := s.themes.Lookup(newSite.Theme)
|
||||
if !ok {
|
||||
return models.Site{}, errors.New("theme not found")
|
||||
}
|
||||
|
||||
if err := s.db.InsertSite(ctx, &newSite); err != nil {
|
||||
return models.Site{}, err
|
||||
}
|
||||
|
||||
// Add the default page bundle
|
||||
rootBundle := models.Bundle{
|
||||
SiteID: newSite.ID,
|
||||
Name: models.RootBundleName,
|
||||
CreatedAt: time.Now(),
|
||||
}
|
||||
if err := s.db.InsertBundle(ctx, &rootBundle); err != nil {
|
||||
return models.Site{}, err
|
||||
}
|
||||
|
||||
// TEMP: Add a home page
|
||||
homePage := models.Page{
|
||||
SiteID: newSite.ID,
|
||||
BundleID: rootBundle.ID,
|
||||
Name: "index",
|
||||
Title: "Welcome to the home page",
|
||||
Body: "This is the home page",
|
||||
State: models.PostStatePublished,
|
||||
PublishDate: time.Now(),
|
||||
CreatedAt: time.Now(),
|
||||
UpdatedAt: time.Now(),
|
||||
}
|
||||
if err := s.db.InsertPage(ctx, &homePage); err != nil {
|
||||
return models.Site{}, err
|
||||
}
|
||||
|
||||
return newSite, s.jobs.Queue(ctx, s.sb.RebuildSite(newSite, newSite))
|
||||
}
|
||||
|
|
@ -46,27 +46,6 @@ func (s *Service) GetProdTargetOfSite(ctx context.Context, siteID int) (models.P
|
|||
return s.db.GetPublishTargetBySiteRole(ctx, int64(siteID), models.TargetRoleProduction)
|
||||
}
|
||||
|
||||
func (s *Service) CreateSite(ctx context.Context, user models.User, name string) (models.Site, error) {
|
||||
newSite := models.Site{
|
||||
Name: normaliseName(name),
|
||||
OwnerUserID: user.ID,
|
||||
Title: name,
|
||||
Theme: "bear",
|
||||
//Theme: "yingyang",
|
||||
}
|
||||
|
||||
_, ok := s.themes.Lookup(newSite.Theme)
|
||||
if !ok {
|
||||
return models.Site{}, errors.New("theme not found")
|
||||
}
|
||||
|
||||
if err := s.db.InsertSite(ctx, &newSite); err != nil {
|
||||
return models.Site{}, err
|
||||
}
|
||||
|
||||
return newSite, s.jobs.Queue(ctx, s.sb.CreateNewSite(newSite))
|
||||
}
|
||||
|
||||
func (s *Service) SaveSettings(ctx context.Context, site models.Site, newSettings NewSettings) error {
|
||||
_, ok := s.themes.Lookup(newSettings.SiteTheme)
|
||||
if !ok {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue