71 lines
2.2 KiB
Go
71 lines
2.2 KiB
Go
package service
|
|
|
|
import (
|
|
"jaecoo-be/app/database/entity"
|
|
"jaecoo-be/app/module/approval_histories/mapper"
|
|
"jaecoo-be/app/module/approval_histories/repository"
|
|
"jaecoo-be/app/module/approval_histories/request"
|
|
"jaecoo-be/app/module/approval_histories/response"
|
|
"jaecoo-be/utils/paginator"
|
|
|
|
"github.com/rs/zerolog"
|
|
)
|
|
|
|
type approvalHistoriesService struct {
|
|
Repo repository.ApprovalHistoriesRepository
|
|
Log zerolog.Logger
|
|
}
|
|
|
|
type ApprovalHistoriesService interface {
|
|
GetAll(req request.ApprovalHistoriesQueryRequest) (histories []*response.ApprovalHistoriesResponse, paging paginator.Pagination, err error)
|
|
GetByModule(moduleType string, moduleId uint) (histories []*response.ApprovalHistoriesResponse, err error)
|
|
CreateHistory(moduleType string, moduleId uint, statusId int, action string, approvedBy *uint, message *string) (err error)
|
|
}
|
|
|
|
func NewApprovalHistoriesService(repo repository.ApprovalHistoriesRepository, log zerolog.Logger) ApprovalHistoriesService {
|
|
return &approvalHistoriesService{
|
|
Repo: repo,
|
|
Log: log,
|
|
}
|
|
}
|
|
|
|
func (_i *approvalHistoriesService) GetAll(req request.ApprovalHistoriesQueryRequest) (histories []*response.ApprovalHistoriesResponse, paging paginator.Pagination, err error) {
|
|
historiesEntity, paging, err := _i.Repo.GetAll(req)
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
for _, history := range historiesEntity {
|
|
histories = append(histories, mapper.ApprovalHistoriesResponseMapper(history))
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
func (_i *approvalHistoriesService) GetByModule(moduleType string, moduleId uint) (histories []*response.ApprovalHistoriesResponse, err error) {
|
|
historiesEntity, err := _i.Repo.GetByModule(moduleType, moduleId)
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
for _, history := range historiesEntity {
|
|
histories = append(histories, mapper.ApprovalHistoriesResponseMapper(history))
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
func (_i *approvalHistoriesService) CreateHistory(moduleType string, moduleId uint, statusId int, action string, approvedBy *uint, message *string) (err error) {
|
|
history := &entity.ApprovalHistories{
|
|
ModuleType: moduleType,
|
|
ModuleId: moduleId,
|
|
StatusId: statusId,
|
|
Action: action,
|
|
ApprovedBy: approvedBy,
|
|
Message: message,
|
|
}
|
|
|
|
_, err = _i.Repo.Create(history)
|
|
return
|
|
}
|