forked from ebhomengo/niki
feat(niki): remove validation from service and add all validation to validation directory
This commit is contained in:
parent
4697645e64
commit
4a5cc910db
|
@ -6,7 +6,7 @@ const (
|
|||
KindBoxPendingSendStatus KindBoxStatus = iota + 1
|
||||
KindBoxSentStatus
|
||||
KindBoxPendingReceivedStatus
|
||||
KindBoxRecievedStatus
|
||||
KindBoxReceivedStatus
|
||||
KindBoxEnumeratedStatus
|
||||
)
|
||||
|
||||
|
@ -14,7 +14,7 @@ const (
|
|||
kindBoxPendingSendStatus = "pending-send"
|
||||
kindBoxSentStatus = "sent"
|
||||
kindBoxPendingReceivedStatus = "pending-received"
|
||||
kindBoxRecievedStatus = "received"
|
||||
kindBoxReceivedStatus = "received"
|
||||
kindBoxEnumeratedStatus = "enumerated"
|
||||
)
|
||||
|
||||
|
@ -26,8 +26,8 @@ func (s KindBoxStatus) String() string {
|
|||
return kindBoxSentStatus
|
||||
case KindBoxPendingReceivedStatus:
|
||||
return kindBoxPendingReceivedStatus
|
||||
case KindBoxRecievedStatus:
|
||||
return kindBoxRecievedStatus
|
||||
case KindBoxReceivedStatus:
|
||||
return kindBoxReceivedStatus
|
||||
case KindBoxEnumeratedStatus:
|
||||
return kindBoxEnumeratedStatus
|
||||
}
|
||||
|
@ -43,11 +43,63 @@ func MapToKindBoxStatus(statusStr string) KindBoxStatus {
|
|||
return KindBoxSentStatus
|
||||
case kindBoxPendingReceivedStatus:
|
||||
return KindBoxPendingReceivedStatus
|
||||
case kindBoxRecievedStatus:
|
||||
return KindBoxRecievedStatus
|
||||
case kindBoxReceivedStatus:
|
||||
return KindBoxReceivedStatus
|
||||
case kindBoxEnumeratedStatus:
|
||||
return KindBoxEnumeratedStatus
|
||||
}
|
||||
|
||||
return KindBoxStatus(0)
|
||||
}
|
||||
|
||||
package entity
|
||||
|
||||
type KindBoxStatus uint
|
||||
|
||||
const (
|
||||
KindBoxPendingSendStatus KindBoxStatus = iota + 1
|
||||
KindBoxSentStatus
|
||||
KindBoxPendingReceivedStatus
|
||||
KindBoxReceivedStatus
|
||||
KindBoxEnumeratedStatus
|
||||
)
|
||||
|
||||
var kindBoxStatusStrings = map[KindBoxStatus]string{
|
||||
KindBoxPendingSendStatus: "pending-send",
|
||||
KindBoxSentStatus: "sent",
|
||||
KindBoxPendingReceivedStatus: "pending-received",
|
||||
KindBoxReceivedStatus: "received",
|
||||
KindBoxEnumeratedStatus: "enumerated",
|
||||
}
|
||||
|
||||
func (s KindBoxStatus) String() string {
|
||||
return kindBoxStatusStrings[s]
|
||||
}
|
||||
|
||||
// AllKindBoxStatus returns a slice containing all string values of KindBoxStatus.
|
||||
func AllKindBoxStatus() []string {
|
||||
statusStrings := make([]string, len(kindBoxStatusStrings))
|
||||
for status, str := range kindBoxStatusStrings {
|
||||
statusStrings[int(status)-1] = str
|
||||
}
|
||||
return statusStrings
|
||||
}
|
||||
|
||||
// MapToKindBoxStatus converts a string to the corresponding KindBoxStatus value.
|
||||
func MapToKindBoxStatus(statusStr string) KindBoxStatus {
|
||||
for status, str := range kindBoxStatusStrings {
|
||||
if str == statusStr {
|
||||
return status
|
||||
}
|
||||
}
|
||||
return KindBoxStatus(0)
|
||||
}
|
||||
|
||||
// AllKindBoxStatus returns a slice containing all string values of KindBoxStatus.
|
||||
func AllKindBoxStatus() []string {
|
||||
statusStrings := make([]string, len(kindBoxStatusStrings))
|
||||
for status, str := range kindBoxStatusStrings {
|
||||
statusStrings[int(status)-1] = str
|
||||
}
|
||||
return statusStrings
|
||||
}
|
|
@ -11,15 +11,6 @@ import (
|
|||
func (s Service) Add(ctx context.Context, req param.KindBoxAddRequest) (param.KindBoxAddResponse, error) {
|
||||
const op = "adminkindboxservice.Add"
|
||||
|
||||
// TODO: check validation
|
||||
// exist, err := s.benefactorService.IsBenefactorExist(ctx, req.BenefactorID)
|
||||
// if err != nil {
|
||||
// return param.KindBoxAddResponse{}, richerror.New(op).WithErr(err).WithKind(richerror.KindUnexpected)
|
||||
//}
|
||||
//if !exist {
|
||||
// return param.KindBoxAddResponse{}, richerror.New(op).WithMessage(errmsg.ErrorMsgUserNotFound).WithKind(richerror.KindInvalid)
|
||||
//}
|
||||
|
||||
kindBox, err := s.repo.AddKindBox(ctx, entity.KindBox{
|
||||
BenefactorID: req.BenefactorID,
|
||||
KindBoxReqID: req.KindBoxReqID,
|
||||
|
|
|
@ -3,9 +3,7 @@ package adminkindboxservice
|
|||
import (
|
||||
"context"
|
||||
|
||||
entity "git.gocasts.ir/ebhomengo/niki/entity"
|
||||
param "git.gocasts.ir/ebhomengo/niki/param/admin/kind_box"
|
||||
errmsg "git.gocasts.ir/ebhomengo/niki/pkg/err_msg"
|
||||
richerror "git.gocasts.ir/ebhomengo/niki/pkg/rich_error"
|
||||
)
|
||||
|
||||
|
@ -13,17 +11,6 @@ func (s Service) Delete(ctx context.Context, req param.KindBoxDeleteRequest) (pa
|
|||
// TODO: Does business domain need to delete an kindbox ?
|
||||
const op = "adminkindboxservice.Delete"
|
||||
|
||||
kb, gErr := s.repo.GetKindBox(ctx, req.KindBoxID)
|
||||
if gErr != nil {
|
||||
return param.KindBoxDeleteResponse{}, richerror.New(op).WithErr(gErr).WithKind(richerror.KindUnexpected)
|
||||
}
|
||||
if kb.Status != entity.KindBoxPendingSendStatus {
|
||||
return param.KindBoxDeleteResponse{}, richerror.New(op).WithMessage(errmsg.ErrorMsgInvalidStatus).WithKind(richerror.KindInvalid)
|
||||
}
|
||||
if kb.BenefactorID != req.BenefactorID {
|
||||
return param.KindBoxDeleteResponse{}, richerror.New(op).WithMessage(errmsg.ErrorMsgUserNotAllowed).WithKind(richerror.KindForbidden)
|
||||
}
|
||||
|
||||
dErr := s.repo.DeleteKindBox(ctx, req.KindBoxID)
|
||||
if dErr != nil {
|
||||
return param.KindBoxDeleteResponse{}, richerror.New(op).WithErr(dErr).WithKind(richerror.KindUnexpected)
|
||||
|
|
|
@ -15,10 +15,6 @@ func (s Service) Get(ctx context.Context, req param.KindBoxGetRequest) (param.Ki
|
|||
if err != nil {
|
||||
return param.KindBoxGetResponse{}, richerror.New(op).WithErr(err).WithKind(richerror.KindUnexpected)
|
||||
}
|
||||
// TODO : ref to service.Update()
|
||||
if kindBox.BenefactorID != req.BenefactorID {
|
||||
return param.KindBoxGetResponse{}, richerror.New(op).WithMessage(errmsg.ErrorMsgUserNotAllowed).WithKind(richerror.KindForbidden)
|
||||
}
|
||||
|
||||
return param.KindBoxGetResponse{KindBox: kindBox}, nil
|
||||
}
|
||||
|
|
|
@ -13,17 +13,8 @@ func (s Service) Update(ctx context.Context, req param.KindBoxUpdateRequest) (pa
|
|||
// TODO: can benefactor update its Request ?
|
||||
// TODO: Is Update Mothod Service Responsible to check which kindboxreqID belongs to benefactorID ?
|
||||
// TODO: updating data(s) may have side-effect on other entities by masood-keshvary accepted -> rejected
|
||||
|
||||
const op = "adminkindboxservice.Update"
|
||||
|
||||
kb, gErr := s.repo.GetKindBox(ctx, req.KindBoxID)
|
||||
if gErr != nil {
|
||||
return param.KindBoxUpdateResponse{}, richerror.New(op).WithErr(gErr).WithKind(richerror.KindUnexpected)
|
||||
}
|
||||
if kb.BenefactorID != req.BenefactorID {
|
||||
return param.KindBoxUpdateResponse{}, richerror.New(op).WithMessage(errmsg.ErrorMsgUserNotAllowed).WithKind(richerror.KindForbidden)
|
||||
}
|
||||
|
||||
kindBox, uErr := s.repo.UpdateKindBox(ctx, req.KindBoxID, entity.KindBox{
|
||||
TotalAmount: req.TotalAmount,
|
||||
ReceiverID: req.ReceiverID,
|
||||
|
|
|
@ -11,15 +11,6 @@ import (
|
|||
func (s Service) Add(ctx context.Context, req param.KindBoxReqAddRequest) (param.KindBoxReqAddResponse, error) {
|
||||
const op = "adminkindboxreqservice.Add"
|
||||
|
||||
// TODO: check validation
|
||||
// exist, err := s.benefactorService.IsBenefactorExist(ctx, req.BenefactorID)
|
||||
// if err != nil {
|
||||
// return param.KindBoxReqAddResponse{}, richerror.New(op).WithErr(err).WithKind(richerror.KindUnexpected)
|
||||
//}
|
||||
// if !exist {
|
||||
// return param.KindBoxReqAddResponse{}, richerror.New(op).WithMessage(errmsg.ErrorMsgUserNotFound).WithKind(richerror.KindInvalid)
|
||||
//}
|
||||
|
||||
kindBoxReq, err := s.repo.AddKindBoxReq(ctx, entity.KindBoxReq{
|
||||
BenefactorID: req.BenefactorID,
|
||||
TypeID: req.TypeID,
|
||||
|
|
|
@ -3,9 +3,7 @@ package adminkindboxreqservice
|
|||
import (
|
||||
"context"
|
||||
|
||||
entity "git.gocasts.ir/ebhomengo/niki/entity"
|
||||
param "git.gocasts.ir/ebhomengo/niki/param/admin/kind_box_req"
|
||||
errmsg "git.gocasts.ir/ebhomengo/niki/pkg/err_msg"
|
||||
richerror "git.gocasts.ir/ebhomengo/niki/pkg/rich_error"
|
||||
)
|
||||
|
||||
|
@ -13,17 +11,6 @@ func (s Service) Delete(ctx context.Context, req param.KindBoxReqDeleteRequest)
|
|||
// TODO: Does business domain need to delete an kindboxreq ?
|
||||
const op = "adminkindboxreqservice.Delete"
|
||||
|
||||
kbr, gErr := s.repo.GetKindBoxReq(ctx, req.KindBoxReqID)
|
||||
if gErr != nil {
|
||||
return param.KindBoxReqDeleteResponse{}, richerror.New(op).WithErr(gErr).WithKind(richerror.KindUnexpected)
|
||||
}
|
||||
if kbr.BenefactorID != req.BenefactorID {
|
||||
return param.KindBoxReqDeleteResponse{}, richerror.New(op).WithMessage(errmsg.ErrorMsgUserNotAllowed).WithKind(richerror.KindForbidden)
|
||||
}
|
||||
if kbr.Status != entity.KindBoxReqPendingStatus {
|
||||
return param.KindBoxReqDeleteResponse{}, richerror.New(op).WithMessage(errmsg.ErrorMsgInvalidStatus).WithKind(richerror.KindInvalid)
|
||||
}
|
||||
|
||||
dErr := s.repo.DeleteKindBoxReq(ctx, req.KindBoxReqID)
|
||||
if dErr != nil {
|
||||
return param.KindBoxReqDeleteResponse{}, richerror.New(op).WithErr(dErr).WithKind(richerror.KindUnexpected)
|
||||
|
|
|
@ -4,7 +4,6 @@ import (
|
|||
"context"
|
||||
|
||||
param "git.gocasts.ir/ebhomengo/niki/param/admin/kind_box_req"
|
||||
errmsg "git.gocasts.ir/ebhomengo/niki/pkg/err_msg"
|
||||
richerror "git.gocasts.ir/ebhomengo/niki/pkg/rich_error"
|
||||
)
|
||||
|
||||
|
@ -16,9 +15,6 @@ func (s Service) Get(ctx context.Context, req param.KindBoxReqGetRequest) (param
|
|||
if err != nil {
|
||||
return param.KindBoxReqGetResponse{}, richerror.New(op).WithErr(err).WithKind(richerror.KindUnexpected)
|
||||
}
|
||||
if kindBoxReq.BenefactorID != req.BenefactorID {
|
||||
return param.KindBoxReqGetResponse{}, richerror.New(op).WithMessage(errmsg.ErrorMsgUserNotAllowed).WithKind(richerror.KindForbidden)
|
||||
}
|
||||
|
||||
return param.KindBoxReqGetResponse{KindBoxReq: kindBoxReq}, nil
|
||||
}
|
||||
|
|
|
@ -15,10 +15,7 @@ func (s Service) Get(ctx context.Context, req param.KindBoxGetRequest) (param.Ki
|
|||
if err != nil {
|
||||
return param.KindBoxGetResponse{}, richerror.New(op).WithErr(err).WithKind(richerror.KindUnexpected)
|
||||
}
|
||||
// TODO : ref to service.Update()
|
||||
if kindBox.BenefactorID != req.BenefactorID {
|
||||
return param.KindBoxGetResponse{}, richerror.New(op).WithMessage(errmsg.ErrorMsgUserNotAllowed).WithKind(richerror.KindForbidden)
|
||||
}
|
||||
|
||||
|
||||
return param.KindBoxGetResponse{KindBox: kindBox}, nil
|
||||
}
|
||||
|
|
|
@ -3,9 +3,7 @@ package userkindboxreqservice
|
|||
import (
|
||||
"context"
|
||||
|
||||
entity "git.gocasts.ir/ebhomengo/niki/entity"
|
||||
param "git.gocasts.ir/ebhomengo/niki/param/benefactor/kind_box_req"
|
||||
errmsg "git.gocasts.ir/ebhomengo/niki/pkg/err_msg"
|
||||
richerror "git.gocasts.ir/ebhomengo/niki/pkg/rich_error"
|
||||
)
|
||||
|
||||
|
@ -13,17 +11,6 @@ func (s Service) Delete(ctx context.Context, req param.KindBoxReqDeleteRequest)
|
|||
// TODO: Does business domain need to delete an kindboxreq ?
|
||||
const op = "userkindboxreqservice.Delete"
|
||||
|
||||
kbr, gErr := s.repo.GetKindBoxReq(ctx, req.KindBoxReqID)
|
||||
if gErr != nil {
|
||||
return param.KindBoxReqDeleteResponse{}, richerror.New(op).WithErr(gErr).WithKind(richerror.KindUnexpected)
|
||||
}
|
||||
if kbr.BenefactorID != req.BenefactorID {
|
||||
return param.KindBoxReqDeleteResponse{}, richerror.New(op).WithMessage(errmsg.ErrorMsgUserNotAllowed).WithKind(richerror.KindForbidden)
|
||||
}
|
||||
if kbr.Status != entity.KindBoxReqPendingStatus {
|
||||
return param.KindBoxReqDeleteResponse{}, richerror.New(op).WithMessage(errmsg.ErrorMsgInvalidStatus).WithKind(richerror.KindInvalid)
|
||||
}
|
||||
|
||||
dErr := s.repo.DeleteKindBoxReq(ctx, req.KindBoxReqID)
|
||||
if dErr != nil {
|
||||
return param.KindBoxReqDeleteResponse{}, richerror.New(op).WithErr(dErr).WithKind(richerror.KindUnexpected)
|
||||
|
|
|
@ -4,7 +4,6 @@ import (
|
|||
"context"
|
||||
|
||||
param "git.gocasts.ir/ebhomengo/niki/param/benefactor/kind_box_req"
|
||||
errmsg "git.gocasts.ir/ebhomengo/niki/pkg/err_msg"
|
||||
richerror "git.gocasts.ir/ebhomengo/niki/pkg/rich_error"
|
||||
)
|
||||
|
||||
|
@ -15,10 +14,6 @@ func (s Service) Get(ctx context.Context, req param.KindBoxReqGetRequest) (param
|
|||
if err != nil {
|
||||
return param.KindBoxReqGetResponse{}, richerror.New(op).WithErr(err).WithKind(richerror.KindUnexpected)
|
||||
}
|
||||
// TODO : ref to service.Update()
|
||||
if kindBoxReq.BenefactorID != req.BenefactorID {
|
||||
return param.KindBoxReqGetResponse{}, richerror.New(op).WithMessage(errmsg.ErrorMsgUserNotAllowed).WithKind(richerror.KindForbidden)
|
||||
}
|
||||
|
||||
return param.KindBoxReqGetResponse{KindBoxReq: kindBoxReq}, nil
|
||||
}
|
||||
|
|
|
@ -5,7 +5,6 @@ import (
|
|||
|
||||
entity "git.gocasts.ir/ebhomengo/niki/entity"
|
||||
param "git.gocasts.ir/ebhomengo/niki/param/benefactor/kind_box_req"
|
||||
errmsg "git.gocasts.ir/ebhomengo/niki/pkg/err_msg"
|
||||
richerror "git.gocasts.ir/ebhomengo/niki/pkg/rich_error"
|
||||
)
|
||||
|
||||
|
@ -14,17 +13,6 @@ func (s Service) Update(ctx context.Context, req param.KindBoxReqUpdateRequest)
|
|||
// TODO: Is Update Mothod Service Responsible to check which kindboxreqID belongs to benefactorID ?
|
||||
const op = "userkindboxreqservice.Update"
|
||||
|
||||
kbr, gErr := s.repo.GetKindBoxReq(ctx, req.KindBoxReqID)
|
||||
if gErr != nil {
|
||||
return param.KindBoxReqUpdateResponse{}, richerror.New(op).WithErr(gErr).WithKind(richerror.KindUnexpected)
|
||||
}
|
||||
if kbr.BenefactorID != req.BenefactorID {
|
||||
return param.KindBoxReqUpdateResponse{}, richerror.New(op).WithMessage(errmsg.ErrorMsgUserNotAllowed).WithKind(richerror.KindForbidden)
|
||||
}
|
||||
if kbr.Status != entity.KindBoxReqPendingStatus {
|
||||
return param.KindBoxReqUpdateResponse{}, richerror.New(op).WithMessage(errmsg.ErrorMsgInvalidStatus).WithKind(richerror.KindInvalid)
|
||||
}
|
||||
|
||||
kindBoxReq, uErr := s.repo.UpdateKindBoxReq(ctx, req.KindBoxReqID, entity.KindBoxReq{
|
||||
BenefactorID: req.BenefactorID,
|
||||
TypeID: req.TypeID,
|
||||
|
|
|
@ -4,6 +4,7 @@ import (
|
|||
param "git.gocasts.ir/ebhomengo/niki/param/admin/kind_box"
|
||||
errmsg "git.gocasts.ir/ebhomengo/niki/pkg/err_msg"
|
||||
richerror "git.gocasts.ir/ebhomengo/niki/pkg/rich_error"
|
||||
"github.com/go-ozzo/ozzo-validation/is"
|
||||
validation "github.com/go-ozzo/ozzo-validation/v4"
|
||||
)
|
||||
|
||||
|
@ -11,18 +12,18 @@ func (v Validator) ValidateAdminAddRequest(req param.KindBoxAddRequest) (map[str
|
|||
const op = "adminkindbox.KindBoxAddRequest"
|
||||
|
||||
if err := validation.ValidateStruct(&req,
|
||||
validation.Field(&req.SerialNumber, validation.Required),
|
||||
validation.Field(&req.SerialNumber, validation.Required, is.Alphanumeric),
|
||||
validation.Field(&req.BenefactorID,
|
||||
validation.Required,
|
||||
validation.By(v.doesBenefactorExist(&req.BenefactorID))),
|
||||
validation.By(v.doesBenefactorExist(req.BenefactorID))),
|
||||
|
||||
validation.Field(&req.SenderID,
|
||||
validation.Required,
|
||||
validation.By(v.doesEmployeeExist(&req.SenderID))),
|
||||
validation.By(v.doesEmployeeExist(req.SenderID))),
|
||||
|
||||
validation.Field(&req.KindBoxReqID,
|
||||
validation.Required,
|
||||
validation.By(v.doesKindBoxRequestExist(&req.KindBoxReqID))),
|
||||
validation.By(v.doesKindBoxRequestExist(req.KindBoxReqID))),
|
||||
); err != nil {
|
||||
fieldErrors := make(map[string]string)
|
||||
|
||||
|
|
|
@ -13,11 +13,13 @@ func (v Validator) ValidateDeleteRequest(req param.KindBoxDeleteRequest) (map[st
|
|||
if err := validation.ValidateStruct(&req,
|
||||
validation.Field(&req.BenefactorID,
|
||||
validation.Required,
|
||||
validation.By(v.doesBenefactorExist(&req.BenefactorID))),
|
||||
validation.By(v.doesBenefactorExist(req.BenefactorID))),
|
||||
|
||||
validation.Field(&req.KindBoxID,
|
||||
validation.Required,
|
||||
validation.By(v.doesKindBoxExist(&req.KindBoxID))),
|
||||
validation.By(v.hasPendingStatus(req.KindBoxID)),
|
||||
validation.By(v.doesKindBoxExist(req.KindBoxID)),
|
||||
validation.By(v.doesKindBoxBelongToBenefactor(req.BenefactorID, req.KindBoxID))),
|
||||
); err != nil {
|
||||
fieldErrors := make(map[string]string)
|
||||
|
||||
|
|
|
@ -17,6 +17,7 @@ func (v Validator) ValidateGetByIDRequest(req param.KindBoxGetRequest) (map[stri
|
|||
|
||||
validation.Field(&req.KindBoxID,
|
||||
validation.Required,
|
||||
validation.By(v.doesKindBoxBelongToBenefactor(req.BenefactorID, req.KindBoxID)),
|
||||
validation.By(v.doesKindBoxExist(&req.KindBoxID))),
|
||||
); err != nil {
|
||||
fieldErrors := make(map[string]string)
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
package adminkindbox
|
||||
|
||||
import (
|
||||
"git.gocasts.ir/ebhomengo/niki/entity"
|
||||
param "git.gocasts.ir/ebhomengo/niki/param/admin/kind_box"
|
||||
errmsg "git.gocasts.ir/ebhomengo/niki/pkg/err_msg"
|
||||
richerror "git.gocasts.ir/ebhomengo/niki/pkg/rich_error"
|
||||
"github.com/go-ozzo/ozzo-validation/is"
|
||||
validation "github.com/go-ozzo/ozzo-validation/v4"
|
||||
)
|
||||
|
||||
|
@ -13,13 +15,14 @@ func (v Validator) ValidateUpdateRequest(req param.KindBoxUpdateRequest) (map[st
|
|||
if err := validation.ValidateStruct(&req,
|
||||
validation.Field(&req.BenefactorID,
|
||||
validation.Required,
|
||||
validation.By(v.doesBenefactorExist(&req.BenefactorID))),
|
||||
validation.By(v.doesBenefactorExist(req.BenefactorID))),
|
||||
|
||||
validation.Field(&req.KindBoxID,
|
||||
validation.Required,
|
||||
validation.By(v.doesKindBoxExist(req.BenefactorID)),
|
||||
validation.By(v.doesKindBoxBelongToBenefactor(req.BenefactorID, req.KindBoxID))),
|
||||
|
||||
validation.Field(&req.SerialNumber, validation.EnsureString),
|
||||
validation.Field(&req.SerialNumber, is.Alphanumeric),
|
||||
|
||||
validation.Field(&req.TotalAmount, validation.Min(0)),
|
||||
|
||||
|
@ -30,7 +33,7 @@ func (v Validator) ValidateUpdateRequest(req param.KindBoxUpdateRequest) (map[st
|
|||
validation.By(v.doesEmployeeExist(req.ReceiverID))),
|
||||
|
||||
validation.Field(&req.Status,
|
||||
validation.By(v.hasCorrectStatus(req.Status.String))),
|
||||
validation.In(entity.AllKindBoxStatus())),
|
||||
); err != nil {
|
||||
fieldErrors := make(map[string]string)
|
||||
|
||||
|
|
|
@ -12,6 +12,7 @@ type Repository interface {
|
|||
BenefactorExist(id uint) (bool, error)
|
||||
KindBoxExist(id uint) (bool, error)
|
||||
KindBoxBelongToBenefactor(benefactorID uint, kindboxID uint) (bool, error)
|
||||
PendingStatus(id uint) (bool, error)
|
||||
CheckStatus(status string) (bool, error)
|
||||
}
|
||||
|
||||
|
@ -83,3 +84,13 @@ func (v Validator) hasCorrectStatus(value interface{}) error {
|
|||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (v Validator) hasPendingStatus(value interface{}) error {
|
||||
kindboxID := value.(uint)
|
||||
_, err := v.repo.PendingStatus(kindboxID)
|
||||
if err != nil {
|
||||
return fmt.Errorf(errmsg.ErrorMsgNotFound)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -16,11 +16,11 @@ func (v Validator) ValidateAddRequest(req param.KindBoxReqAddRequest) (map[strin
|
|||
|
||||
validation.Field(&req.BenefactorID,
|
||||
validation.Required,
|
||||
validation.By(v.doesBenefactorExist)),
|
||||
validation.By(v.doesBenefactorExist(req.BenefactorID))),
|
||||
|
||||
validation.Field(&req.TypeID,
|
||||
validation.Required,
|
||||
validation.By(v.doesTypeExist)),
|
||||
validation.By(v.doesTypeExist(req.TypeID))),
|
||||
); err != nil {
|
||||
fieldErrors := make(map[string]string)
|
||||
|
||||
|
|
|
@ -17,7 +17,9 @@ func (v Validator) ValidateDeleteRequest(req param.KindBoxReqDeleteRequest) (map
|
|||
|
||||
validation.Field(&req.KindBoxReqID,
|
||||
validation.Required,
|
||||
validation.By(v.doesKindBoxRequestExist(req.KindBoxReqID))),
|
||||
validation.By(v.hasPendingStatus(req.KindBoxReqID)),
|
||||
validation.By(v.doesKindBoxRequestExist(req.KindBoxReqID)),
|
||||
validation.By(v.doesKindBoxBelongToBenefactor(req.BenefactorID, req.KindBoxReqID))),
|
||||
); err != nil {
|
||||
fieldErrors := make(map[string]string)
|
||||
|
||||
|
|
|
@ -17,7 +17,8 @@ func (v Validator) ValidateGetByIDRequest(req param.KindBoxReqGetRequest) (map[s
|
|||
|
||||
validation.Field(&req.KindBoxReqID,
|
||||
validation.Required,
|
||||
validation.By(v.doesKindBoxRequestExist(req.KindBoxReqID))),
|
||||
validation.By(v.doesKindBoxRequestExist(req.KindBoxReqID)),
|
||||
validation.By(v.doesKindBoxBelongToBenefactor(req.BenefactorID, req.KindBoxReqID))),
|
||||
); err != nil {
|
||||
fieldErrors := make(map[string]string)
|
||||
|
||||
|
|
|
@ -19,7 +19,9 @@ func (v Validator) ValidateUpdateRequest(req param.KindBoxReqUpdateRequest) (map
|
|||
|
||||
validation.Field(&req.KindBoxReqID,
|
||||
validation.Required,
|
||||
validation.By(v.doesKindBoxBelongToBenefactor(req.KindBoxReqID, req.BenefactorID))),
|
||||
validation.By(v.doesKindBoxRequestExist(req.KindBoxReqID)),
|
||||
validation.By(v.hasPendingStatus(req.KindBoxReqID)),
|
||||
validation.By(v.doesKindBoxBelongToBenefactor(req.BenefactorID, req.KindBoxReqID))),
|
||||
|
||||
validation.Field(&req.TypeID,
|
||||
validation.By(v.doesTypeExist(req.TypeID))),
|
||||
|
|
|
@ -16,6 +16,7 @@ type Repository interface {
|
|||
KindBoxRequestExist(id int) (bool, error)
|
||||
TypeExist(id int) (bool, error)
|
||||
KindBoxBelongToBenefactor(benefactorID uint, kindboxID uint) (bool, error)
|
||||
PendingStatus(id uint) (bool, error)
|
||||
}
|
||||
|
||||
type Validator struct {
|
||||
|
@ -66,3 +67,13 @@ func (v Validator) doesTypeExist(value interface{}) error {
|
|||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (v Validator) hasPendingStatus(value interface{}) error {
|
||||
kindboxID := value.(uint)
|
||||
_, err := v.repo.PendingStatus(kindboxID)
|
||||
if err != nil {
|
||||
return fmt.Errorf(errmsg.ErrorMsgNotFound)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -13,11 +13,12 @@ func (v Validator) ValidateGetByIDRequest(req param.KindBoxGetRequest) (map[stri
|
|||
if err := validation.ValidateStruct(&req,
|
||||
validation.Field(&req.BenefactorID,
|
||||
validation.Required,
|
||||
validation.By(v.doesBenefactorExist(&req.BenefactorID))),
|
||||
validation.By(v.doesBenefactorExist(req.BenefactorID))),
|
||||
|
||||
validation.Field(&req.KindBoxID,
|
||||
validation.Required,
|
||||
validation.By(v.doesKindBoxExist(&req.KindBoxID))),
|
||||
validation.By(v.doesKindBoxExist(req.KindBoxID)),
|
||||
validation.By(v.doesKindBoxBelongToBenefactor(req.BenefactorID, req.KindBoxID))),
|
||||
); err != nil {
|
||||
fieldErrors := make(map[string]string)
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ func (v Validator) ValidateUpdateRequest(req param.KindBoxGetAllRequest) (map[st
|
|||
if err := validation.ValidateStruct(&req,
|
||||
validation.Field(&req.BenefactorID,
|
||||
validation.Required,
|
||||
validation.By(v.doesBenefactorExist(&req.BenefactorID))),
|
||||
validation.By(v.doesBenefactorExist(req.BenefactorID))),
|
||||
); err != nil {
|
||||
fieldErrors := make(map[string]string)
|
||||
|
||||
|
|
|
@ -7,8 +7,9 @@ import (
|
|||
)
|
||||
|
||||
type Repository interface {
|
||||
BenefactorExist(id int) (bool, error)
|
||||
KindBoxExist(id int) (bool, error)
|
||||
BenefactorExist(id uint) (bool, error)
|
||||
KindBoxExist(id uint) (bool, error)
|
||||
KindBoxBelongToBenefactor(bId uint, kbId uint) (bool, error)
|
||||
}
|
||||
|
||||
type Validator struct {
|
||||
|
@ -20,7 +21,7 @@ func New(repo Repository) Validator {
|
|||
}
|
||||
|
||||
func (v Validator) doesBenefactorExist(value interface{}) error {
|
||||
benefactorID := value.(int)
|
||||
benefactorID := value.(uint)
|
||||
_, err := v.repo.BenefactorExist(benefactorID)
|
||||
if err != nil {
|
||||
return fmt.Errorf(errmsg.ErrorMsgNotFound)
|
||||
|
@ -30,7 +31,7 @@ func (v Validator) doesBenefactorExist(value interface{}) error {
|
|||
}
|
||||
|
||||
func (v Validator) doesKindBoxExist(value interface{}) error {
|
||||
kindBoxID := value.(int)
|
||||
kindBoxID := value.(uint)
|
||||
_, err := v.repo.KindBoxExist(kindBoxID)
|
||||
if err != nil {
|
||||
return fmt.Errorf(errmsg.ErrorMsgNotFound)
|
||||
|
@ -38,3 +39,14 @@ func (v Validator) doesKindBoxExist(value interface{}) error {
|
|||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (v Validator) doesKindBoxBelongToBenefactor(benefactorID interface{}, kindBoxID interface{}) error {
|
||||
kbId := kindBoxID.(uint)
|
||||
bId := benefactorID.(uint)
|
||||
_, err := v.repo.KindBoxBelongToBenefactor(bId, kbId)
|
||||
if err != nil {
|
||||
return fmt.Errorf(errmsg.ErrorMsgNotFound)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -16,11 +16,11 @@ func (v Validator) ValidateAddRequest(req param.KindBoxReqAddRequest) (map[strin
|
|||
|
||||
validation.Field(&req.BenefactorID,
|
||||
validation.Required,
|
||||
validation.By(v.doesBenefactorExist(&req.BenefactorID))),
|
||||
validation.By(v.doesBenefactorExist(req.BenefactorID))),
|
||||
|
||||
validation.Field(&req.TypeID,
|
||||
validation.Required,
|
||||
validation.By(v.doesTypeExist(&req.TypeID))),
|
||||
validation.By(v.doesTypeExist(req.TypeID))),
|
||||
); err != nil {
|
||||
fieldErrors := make(map[string]string)
|
||||
|
||||
|
|
|
@ -13,11 +13,13 @@ func (v Validator) ValidateDeleteRequest(req param.KindBoxReqDeleteRequest) (map
|
|||
if err := validation.ValidateStruct(&req,
|
||||
validation.Field(&req.BenefactorID,
|
||||
validation.Required,
|
||||
validation.By(v.doesBenefactorExist(&req.BenefactorID))),
|
||||
validation.By(v.doesBenefactorExist(req.BenefactorID))),
|
||||
|
||||
validation.Field(&req.KindBoxReqID,
|
||||
validation.Required,
|
||||
validation.By(v.doesKindBoxRequestExist(&req.KindBoxReqID))),
|
||||
validation.By(v.doesKindBoxRequestExist(req.KindBoxReqID)),
|
||||
validation.By(v.hasPendingStatus(req.KindBoxReqID)),
|
||||
validation.By(v.doesKindBoxBelongToBenefactor(req.BenefactorID, req.KindBoxReqID))),
|
||||
); err != nil {
|
||||
fieldErrors := make(map[string]string)
|
||||
|
||||
|
|
|
@ -13,11 +13,12 @@ func (v Validator) ValidateGetRequest(req param.KindBoxReqGetRequest) (map[strin
|
|||
if err := validation.ValidateStruct(&req,
|
||||
validation.Field(&req.BenefactorID,
|
||||
validation.Required,
|
||||
validation.By(v.doesBenefactorExist(&req.BenefactorID))),
|
||||
validation.By(v.doesBenefactorExist(req.BenefactorID))),
|
||||
|
||||
validation.Field(&req.KindBoxReqID,
|
||||
validation.Required,
|
||||
validation.By(v.doesKindBoxRequestExist(&req.KindBoxReqID))),
|
||||
validation.By(v.doesKindBoxRequestExist(req.KindBoxReqID)),
|
||||
validation.By(v.doesKindBoxBelongToBenefactor(req.BenefactorID, req.KindBoxReqID))),
|
||||
); err != nil {
|
||||
fieldErrors := make(map[string]string)
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ func (v Validator) ValidateGetAllRequest(req param.KindBoxReqGetAllRequest) (map
|
|||
if err := validation.ValidateStruct(&req,
|
||||
validation.Field(&req.BenefactorID,
|
||||
validation.Required,
|
||||
validation.By(v.doesBenefactorExist(&req.BenefactorID))),
|
||||
validation.By(v.doesBenefactorExist(req.BenefactorID))),
|
||||
); err != nil {
|
||||
fieldErrors := make(map[string]string)
|
||||
|
||||
|
|
|
@ -15,15 +15,17 @@ func (v Validator) ValidateUpdateRequest(req param.KindBoxReqUpdateRequest) (map
|
|||
|
||||
validation.Field(&req.BenefactorID,
|
||||
validation.Required,
|
||||
validation.By(v.doesBenefactorExist(&req.BenefactorID))),
|
||||
validation.By(v.doesBenefactorExist(req.BenefactorID))),
|
||||
|
||||
validation.Field(&req.KindBoxReqID,
|
||||
validation.Required,
|
||||
validation.By(v.doesKindBoxRequestExist(&req.KindBoxReqID))),
|
||||
validation.By(v.doesKindBoxRequestExist(req.KindBoxReqID)),
|
||||
validation.By(v.hasPendingStatus(req.KindBoxReqID)),
|
||||
validation.By(v.doesKindBoxBelongToBenefactor(req.BenefactorID, req.KindBoxReqID))),
|
||||
|
||||
validation.Field(&req.TypeID,
|
||||
validation.Required,
|
||||
validation.By(v.doesTypeExist(&req.TypeID))),
|
||||
validation.By(v.doesTypeExist(req.TypeID))),
|
||||
); err != nil {
|
||||
fieldErrors := make(map[string]string)
|
||||
|
||||
|
|
|
@ -12,9 +12,11 @@ const (
|
|||
)
|
||||
|
||||
type Repository interface {
|
||||
BenefactorExist(id int) (bool, error)
|
||||
KindBoxReqExist(id int) (bool, error)
|
||||
TypeExist(id int) (bool, error)
|
||||
BenefactorExist(id uint) (bool, error)
|
||||
KindBoxReqExist(id uint) (bool, error)
|
||||
TypeExist(id uint) (bool, error)
|
||||
KindBoxBelongToBenefactor(bId uint, kbId uint) (bool, error)
|
||||
PendingStatus(id uint) (bool, error)
|
||||
}
|
||||
|
||||
type Validator struct {
|
||||
|
@ -26,7 +28,7 @@ func New(repo Repository) Validator {
|
|||
}
|
||||
|
||||
func (v Validator) doesBenefactorExist(value interface{}) error {
|
||||
benefactorID := value.(int)
|
||||
benefactorID := value.(uint)
|
||||
_, err := v.repo.BenefactorExist(benefactorID)
|
||||
if err != nil {
|
||||
return fmt.Errorf(errmsg.ErrorMsgNotFound)
|
||||
|
@ -36,7 +38,7 @@ func (v Validator) doesBenefactorExist(value interface{}) error {
|
|||
}
|
||||
|
||||
func (v Validator) doesTypeExist(value interface{}) error {
|
||||
typeID := value.(int)
|
||||
typeID := value.(uint)
|
||||
_, err := v.repo.TypeExist(typeID)
|
||||
if err != nil {
|
||||
return fmt.Errorf(errmsg.ErrorMsgNotFound)
|
||||
|
@ -46,7 +48,7 @@ func (v Validator) doesTypeExist(value interface{}) error {
|
|||
}
|
||||
|
||||
func (v Validator) doesKindBoxRequestExist(value interface{}) error {
|
||||
kindBoxReqID := value.(int)
|
||||
kindBoxReqID := value.(uint)
|
||||
_, err := v.repo.KindBoxReqExist(kindBoxReqID)
|
||||
if err != nil {
|
||||
return fmt.Errorf(errmsg.ErrorMsgNotFound)
|
||||
|
@ -54,3 +56,24 @@ func (v Validator) doesKindBoxRequestExist(value interface{}) error {
|
|||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (v Validator) doesKindBoxBelongToBenefactor(benefactorID interface{}, kindBoxID interface{}) error {
|
||||
kbId := kindBoxID.(uint)
|
||||
bId := benefactorID.(uint)
|
||||
_, err := v.repo.KindBoxBelongToBenefactor(bId, kbId)
|
||||
if err != nil {
|
||||
return fmt.Errorf(errmsg.ErrorMsgNotFound)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (v Validator) hasPendingStatus(value interface{}) error {
|
||||
kindboxID := value.(uint)
|
||||
_, err := v.repo.PendingStatus(kindboxID)
|
||||
if err != nil {
|
||||
return fmt.Errorf(errmsg.ErrorMsgNotFound)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue