Have got post creation working.
This commit is contained in:
parent
63b19a249a
commit
8e0ffb6c24
20 changed files with 479 additions and 11 deletions
47
services/posts/services.go
Normal file
47
services/posts/services.go
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
package posts
|
||||
|
||||
import (
|
||||
"context"
|
||||
"lmika.dev/lmika/hugo-crm/models"
|
||||
"lmika.dev/lmika/hugo-crm/providers/db"
|
||||
"lmika.dev/lmika/hugo-crm/services/jobs"
|
||||
"lmika.dev/lmika/hugo-crm/services/sitebuilder"
|
||||
"time"
|
||||
)
|
||||
|
||||
type Service struct {
|
||||
db *db.DB
|
||||
sb *sitebuilder.Service
|
||||
jobs *jobs.Service
|
||||
}
|
||||
|
||||
func New(
|
||||
db *db.DB,
|
||||
sb *sitebuilder.Service,
|
||||
jobs *jobs.Service,
|
||||
) *Service {
|
||||
return &Service{
|
||||
db: db,
|
||||
sb: sb,
|
||||
jobs: jobs,
|
||||
}
|
||||
}
|
||||
|
||||
func (s *Service) ListPostOfSite(ctx context.Context, site models.Site) ([]models.Post, error) {
|
||||
return s.db.ListPostsOfSite(ctx, site.ID)
|
||||
}
|
||||
|
||||
func (s *Service) Create(ctx context.Context, site models.Site, body string) (models.Post, error) {
|
||||
post := models.Post{
|
||||
SiteID: site.ID,
|
||||
Body: body,
|
||||
State: models.PostStatePublished,
|
||||
PostDate: time.Now(),
|
||||
CreatedAt: time.Now(),
|
||||
}
|
||||
if err := s.db.InsertPost(ctx, &post); err != nil {
|
||||
return models.Post{}, err
|
||||
}
|
||||
|
||||
return post, s.jobs.Queue(ctx, s.sb.WritePost(site, post))
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue