77 lines
2.1 KiB
Go
77 lines
2.1 KiB
Go
package service
|
|
|
|
import (
|
|
"github.com/rs/zerolog"
|
|
|
|
"web-qudo-be/app/module/popup_news_contents/mapper"
|
|
"web-qudo-be/app/module/popup_news_contents/repository"
|
|
"web-qudo-be/app/module/popup_news_contents/request"
|
|
"web-qudo-be/app/module/popup_news_contents/response"
|
|
"web-qudo-be/utils/paginator"
|
|
)
|
|
|
|
// service struct
|
|
type popupNewsContentsService struct {
|
|
Repo repository.PopupNewsContentsRepository
|
|
Log zerolog.Logger
|
|
}
|
|
|
|
// interface
|
|
type PopupNewsContentsService interface {
|
|
All(req request.PopupNewsContentsQueryRequest) (data []*response.PopupNewsContentsResponse, paging paginator.Pagination, err error)
|
|
Show(id uint) (*response.PopupNewsContentsResponse, error)
|
|
Save(req request.PopupNewsContentsCreateRequest) error
|
|
Update(id uint, req request.PopupNewsContentsUpdateRequest) error
|
|
Delete(id uint) error
|
|
}
|
|
|
|
// constructor
|
|
func NewPopupNewsContentsService(repo repository.PopupNewsContentsRepository, log zerolog.Logger) PopupNewsContentsService {
|
|
return &popupNewsContentsService{
|
|
Repo: repo,
|
|
Log: log,
|
|
}
|
|
}
|
|
|
|
// All
|
|
func (_i *popupNewsContentsService) All(req request.PopupNewsContentsQueryRequest) (datas []*response.PopupNewsContentsResponse, paging paginator.Pagination, err error) {
|
|
results, paging, err := _i.Repo.GetAll(req)
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
for _, result := range results {
|
|
datas = append(datas, mapper.PopupNewsContentsResponseMapper(result))
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
// Show
|
|
func (_i *popupNewsContentsService) Show(id uint) (*response.PopupNewsContentsResponse, error) {
|
|
result, err := _i.Repo.FindOne(id)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return mapper.PopupNewsContentsResponseMapper(result), nil
|
|
}
|
|
|
|
// Save
|
|
func (_i *popupNewsContentsService) Save(req request.PopupNewsContentsCreateRequest) error {
|
|
_i.Log.Info().Interface("data", req).Msg("create popup news content")
|
|
|
|
return _i.Repo.Create(req.ToEntity())
|
|
}
|
|
|
|
// Update
|
|
func (_i *popupNewsContentsService) Update(id uint, req request.PopupNewsContentsUpdateRequest) error {
|
|
_i.Log.Info().Interface("data", req).Msg("update popup news content")
|
|
|
|
return _i.Repo.Update(id, req.ToEntity())
|
|
}
|
|
|
|
// Delete
|
|
func (_i *popupNewsContentsService) Delete(id uint) error {
|
|
return _i.Repo.Delete(id)
|
|
} |