Started working on the frontend
- Added the new post frontend - Hooked up publishing of posts to the site publisher - Added an site exporter as a publishing target
This commit is contained in:
parent
a59008b3e8
commit
e77cac2fd5
40 changed files with 1427 additions and 84 deletions
|
|
@ -15,6 +15,7 @@ import (
|
|||
"lmika.dev/lmika/weiro/models/pubmodel"
|
||||
"lmika.dev/lmika/weiro/providers/db"
|
||||
"lmika.dev/lmika/weiro/providers/sitebuilder"
|
||||
"lmika.dev/lmika/weiro/providers/siteexporter"
|
||||
)
|
||||
|
||||
type Publisher struct {
|
||||
|
|
@ -27,27 +28,14 @@ func New(db *db.Provider) *Publisher {
|
|||
}
|
||||
}
|
||||
|
||||
func (p *Publisher) Publish(ctx context.Context, siteID int64) error {
|
||||
// Fetch site, ensure user is owner
|
||||
site, err := p.db.SelectSiteByID(ctx, siteID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
user, ok := models.GetUser(ctx)
|
||||
if !ok {
|
||||
return models.UserRequiredError
|
||||
} else if user.ID != site.OwnerID {
|
||||
return models.PermissionError
|
||||
}
|
||||
|
||||
targets, err := p.db.SelectPublishTargetsOfSite(ctx, siteID)
|
||||
func (p *Publisher) Publish(ctx context.Context, site models.Site) error {
|
||||
targets, err := p.db.SelectPublishTargetsOfSite(ctx, site.ID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Fetch all content of site
|
||||
posts, err := p.db.SelectPostsOfSite(ctx, siteID)
|
||||
posts, err := p.db.SelectPostsOfSite(ctx, site.ID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
@ -77,6 +65,17 @@ func (p *Publisher) publishSite(ctx context.Context, pubSite pubmodel.Site, targ
|
|||
}
|
||||
|
||||
switch target.TargetType {
|
||||
case "export":
|
||||
exporter := siteexporter.New(pubSite.Site, target.BaseURL, target.TargetRef)
|
||||
if err := exporter.WriteSiteYAML(); err != nil {
|
||||
return err
|
||||
}
|
||||
for _, p := range pubSite.Posts {
|
||||
if err := exporter.WritePost(p); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
case "localfs":
|
||||
log.Printf("Building site at %s", target.TargetRef)
|
||||
return sb.BuildSite(target.TargetRef)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue