feat: update news
This commit is contained in:
@@ -11,7 +11,7 @@ import (
|
||||
|
||||
type impl struct {
|
||||
staffRepo staffrepository.Staff
|
||||
userRepo userrepository.UserIntf
|
||||
userRepo userrepository.User
|
||||
subsRepo subscriberepository.SubsIntf
|
||||
subsPlanRepo subscribeplanrepository.SubsPlanIntf
|
||||
}
|
||||
@@ -29,7 +29,7 @@ type Auth interface {
|
||||
|
||||
func New(
|
||||
staffRepo staffrepository.Staff,
|
||||
userRepo userrepository.UserIntf,
|
||||
userRepo userrepository.User,
|
||||
subsRepo subscriberepository.SubsIntf,
|
||||
subsPlanRepo subscribeplanrepository.SubsPlanIntf,
|
||||
) Auth {
|
||||
|
||||
@@ -2,14 +2,14 @@ package newssvc
|
||||
|
||||
import (
|
||||
newsdomain "legalgo-BE-go/internal/domain/news"
|
||||
"strings"
|
||||
"legalgo-BE-go/internal/utilities/utils"
|
||||
"time"
|
||||
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
func (i *impl) Create(spec newsdomain.NewsReq, staffId string) error {
|
||||
slug := strings.ToLower(strings.ReplaceAll(spec.Title, " ", "-"))
|
||||
slug := utils.TitleToSlug(spec.Title)
|
||||
|
||||
tags, err := i.tagRepo.GetByIDs(spec.Tags)
|
||||
if err != nil {
|
||||
|
||||
@@ -4,6 +4,7 @@ import (
|
||||
categoryrepository "legalgo-BE-go/internal/accessor/category"
|
||||
newsrepository "legalgo-BE-go/internal/accessor/news"
|
||||
tagrepository "legalgo-BE-go/internal/accessor/tag"
|
||||
userrepository "legalgo-BE-go/internal/accessor/user_repository"
|
||||
newsdomain "legalgo-BE-go/internal/domain/news"
|
||||
)
|
||||
|
||||
@@ -11,12 +12,14 @@ type impl struct {
|
||||
newsRepo newsrepository.News
|
||||
tagRepo tagrepository.TagAccessor
|
||||
categoryRepo categoryrepository.Category
|
||||
userRepo userrepository.User
|
||||
}
|
||||
|
||||
type News interface {
|
||||
GetAll() ([]newsdomain.News, error)
|
||||
GetBySlug(string) (*newsdomain.News, error)
|
||||
Create(newsdomain.NewsReq, string) error
|
||||
Update(string, newsdomain.NewsUpdate) error
|
||||
Delete(string) error
|
||||
}
|
||||
|
||||
@@ -24,10 +27,12 @@ func New(
|
||||
newsRepo newsrepository.News,
|
||||
tagRepo tagrepository.TagAccessor,
|
||||
categoryRepo categoryrepository.Category,
|
||||
userRepo userrepository.User,
|
||||
) News {
|
||||
return &impl{
|
||||
newsRepo,
|
||||
tagRepo,
|
||||
categoryRepo,
|
||||
userRepo,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
package newssvc
|
||||
|
||||
import (
|
||||
newsdomain "legalgo-BE-go/internal/domain/news"
|
||||
timeutils "legalgo-BE-go/internal/utilities/time_utils"
|
||||
"legalgo-BE-go/internal/utilities/utils"
|
||||
)
|
||||
|
||||
func (i *impl) Update(id string, spec newsdomain.NewsUpdate) error {
|
||||
tags, err := i.tagRepo.GetByIDs(spec.Tags)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
categories, err := i.categoryRepo.GetByIDs(spec.Categories)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
newSpec := newsdomain.News{
|
||||
ID: spec.ID,
|
||||
AuthorID: id,
|
||||
UpdatedAt: timeutils.Now(),
|
||||
Slug: utils.TitleToSlug(spec.Title),
|
||||
LiveAt: spec.LiveAt,
|
||||
Title: spec.Title,
|
||||
IsPremium: spec.IsPremium,
|
||||
Content: spec.Content,
|
||||
FeaturedImage: spec.FeaturedImage,
|
||||
Tags: tags,
|
||||
Categories: categories,
|
||||
}
|
||||
|
||||
if err := i.newsRepo.Update(newSpec); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user