kontenhumas-be/app/module/article_approvals/request/article_approvals.request.go

93 lines
2.6 KiB
Go

package request
import (
"netidhub-saas-be/app/database/entity"
"netidhub-saas-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
}