forked from ebhomengo/niki
Merge pull request 'fix(validation): Add validation for KindBox status in enumeration by admin' (#144) from stage/fatemeh/admin-kindbox-enumeration-validation into develop
Reviewed-on: ebhomengo/niki#144
This commit is contained in:
commit
951f5c8114
|
@ -35,5 +35,6 @@ const (
|
|||
ErrorMsgSortDirectionShouldBeAscOrDesc = "sort direction should be asc or desc"
|
||||
ErrorMsgSortFieldIsNotValid = "sort field is not valid"
|
||||
ErrorMsgAssignReceiverAgentKindBoxStatus = "only ready to return kindboxes can be assigned to a receiver agent"
|
||||
ErrorMsgReturnKindBoxStatus = "only returned kindboxes can be enumerated"
|
||||
ErrorMsgInvalidSerialNumberRange = "invalid serial number range"
|
||||
)
|
||||
|
|
|
@ -14,11 +14,12 @@ func (v Validator) ValidateEnumerate(ctx context.Context, req param.EnumerateKin
|
|||
const op = "adminkindboxvalidator.ValidateEnumerate"
|
||||
|
||||
if err := validation.ValidateStruct(&req,
|
||||
|
||||
validation.Field(&req.KindBoxID, validation.Required,
|
||||
validation.By(v.doesKindBoxExist(ctx))),
|
||||
validation.By(v.doesKindBoxExist(ctx)),
|
||||
validation.By(v.CheckKindBoxStatusForEnumeration(ctx))),
|
||||
|
||||
validation.Field(&req.Amount, validation.Required),
|
||||
|
||||
); err != nil {
|
||||
fieldErrors := make(map[string]string)
|
||||
|
||||
|
|
|
@ -81,3 +81,21 @@ func (v Validator) doesAgentExist(ctx context.Context) validation.RuleFunc {
|
|||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
func (v Validator) CheckKindBoxStatusForEnumeration(ctx context.Context) validation.RuleFunc {
|
||||
return func(value interface{}) error {
|
||||
kindBoxID, ok := value.(uint)
|
||||
if !ok {
|
||||
return fmt.Errorf(errmsg.ErrorMsgSomethingWentWrong)
|
||||
}
|
||||
kindBox, err := v.repo.GetKindBox(ctx, kindBoxID)
|
||||
if err != nil {
|
||||
return fmt.Errorf(errmsg.ErrorMsgSomethingWentWrong)
|
||||
}
|
||||
if kindBox.Status != entity.KindBoxReturnedStatus {
|
||||
return fmt.Errorf(errmsg.ErrorMsgReturnKindBoxStatus)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue