93 lines
2.6 KiB
Go
93 lines
2.6 KiB
Go
package request
|
|
|
|
import (
|
|
"narasi-ahli-be/app/database/entity"
|
|
"narasi-ahli-be/utils/paginator"
|
|
"strconv"
|
|
)
|
|
|
|
type ArticleApprovalsGeneric interface {
|
|
ToEntity()
|
|
}
|
|
|
|
type ArticleApprovalsQueryRequest struct {
|
|
ArticleId *int `json:"articleId"`
|
|
ApprovalBy *int `json:"approvalBy"`
|
|
StatusId *int `json:"statusId"`
|
|
Message *string `json:"message"`
|
|
ApprovalAtLevel *int `json:"approvalAtLevel"`
|
|
Pagination *paginator.Pagination `json:"pagination"`
|
|
}
|
|
|
|
type ArticleApprovalsCreateRequest struct {
|
|
ArticleId uint `json:"articleId" validate:"required"`
|
|
StatusId int `json:"statusId" validate:"required"`
|
|
Message string `json:"message" validate:"required"`
|
|
}
|
|
|
|
func (req ArticleApprovalsCreateRequest) ToEntity() *entity.ArticleApprovals {
|
|
return &entity.ArticleApprovals{
|
|
ArticleId: req.ArticleId,
|
|
StatusId: req.StatusId,
|
|
Message: req.Message,
|
|
}
|
|
}
|
|
|
|
type ArticleApprovalsUpdateRequest struct {
|
|
ID uint `json:"id" validate:"required"`
|
|
ArticleId uint `json:"articleId" validate:"required"`
|
|
StatusId int `json:"statusId" validate:"required"`
|
|
Message string `json:"message" validate:"required"`
|
|
}
|
|
|
|
func (req ArticleApprovalsUpdateRequest) ToEntity() *entity.ArticleApprovals {
|
|
return &entity.ArticleApprovals{
|
|
ID: req.ID,
|
|
ArticleId: req.ArticleId,
|
|
StatusId: req.StatusId,
|
|
Message: req.Message,
|
|
}
|
|
}
|
|
|
|
type ArticleApprovalsQueryRequestContext struct {
|
|
ArticleId string `json:"articleId"`
|
|
ApprovalBy string `json:"approvalBy"`
|
|
StatusId string `json:"statusId"`
|
|
Message string `json:"message"`
|
|
ApprovalAtLevel string `json:"approvalAtLevel"`
|
|
}
|
|
|
|
func (req ArticleApprovalsQueryRequestContext) ToParamRequest() ArticleApprovalsQueryRequest {
|
|
var request ArticleApprovalsQueryRequest
|
|
|
|
if articleIdStr := req.ArticleId; articleIdStr != "" {
|
|
articleId, err := strconv.Atoi(articleIdStr)
|
|
if err == nil {
|
|
request.ArticleId = &articleId
|
|
}
|
|
}
|
|
if approvalByStr := req.ApprovalBy; approvalByStr != "" {
|
|
approvalBy, err := strconv.Atoi(approvalByStr)
|
|
if err == nil {
|
|
request.ApprovalBy = &approvalBy
|
|
}
|
|
}
|
|
if statusIdStr := req.StatusId; statusIdStr != "" {
|
|
statusId, err := strconv.Atoi(statusIdStr)
|
|
if err == nil {
|
|
request.StatusId = &statusId
|
|
}
|
|
}
|
|
if message := req.Message; message != "" {
|
|
request.Message = &message
|
|
}
|
|
if approvalAtLevelStr := req.ApprovalAtLevel; approvalAtLevelStr != "" {
|
|
approvalAtLevel, err := strconv.Atoi(approvalAtLevelStr)
|
|
if err == nil {
|
|
request.ApprovalAtLevel = &approvalAtLevel
|
|
}
|
|
}
|
|
|
|
return request
|
|
}
|