forked from ebhomengo/niki
minor change validation Accept/Reject kind box request
This commit is contained in:
parent
79be4d0a0e
commit
96eb93bb69
|
@ -14,6 +14,6 @@ const (
|
||||||
ErrorMsgOtpCodeIsNotValid = "verification code is not valid"
|
ErrorMsgOtpCodeIsNotValid = "verification code is not valid"
|
||||||
ErrorMsgCantScanQueryResult = "can't scan query result"
|
ErrorMsgCantScanQueryResult = "can't scan query result"
|
||||||
ErrorMsgPhoneNumberOrPassIsIncorrect = "phone number or password is incorrect"
|
ErrorMsgPhoneNumberOrPassIsIncorrect = "phone number or password is incorrect"
|
||||||
ErrorMsgReAcceptKindBoxReq = "accepted request cannot be re-accepted"
|
ErrorMsgAcceptKindBoxReqStatus = "only pending requests will have the ability to be confirmed"
|
||||||
ErrorMsgReRejectKindBoxReq = "rejected request cannot be re-rejected"
|
ErrorMsgRejectKindBoxReqStatus = "only pending requests will have the ability to be rejected"
|
||||||
)
|
)
|
||||||
|
|
|
@ -74,37 +74,6 @@ func (d DB) KindBoxRequestExist(id uint) (bool, error) {
|
||||||
return true, nil
|
return true, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d DB) CheckKindBoxReqStatusForAccepting(id uint) error {
|
|
||||||
op := richerror.Op("mysqlkindboxreq.CheckKindBoxReqStatusForAccepting")
|
|
||||||
|
|
||||||
k, err := d.GetByID(context.Background(), id)
|
|
||||||
if err != nil {
|
|
||||||
return richerror.New(op).WithErr(err)
|
|
||||||
}
|
|
||||||
if k.Status == entity.KindBoxReqAcceptedStatus {
|
|
||||||
return richerror.New(op).WithMessage(errmsg.ErrorMsgReAcceptKindBoxReq).WithMeta(map[string]interface{}{
|
|
||||||
"id": id,
|
|
||||||
}).WithKind(richerror.KindInvalid)
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (d DB) CheckKindBoxReqStatusForRejecting(id uint) error {
|
|
||||||
op := richerror.Op("mysqlkindboxreq.CheckKindBoxReqStatusForRejecting")
|
|
||||||
k, err := d.GetByID(context.Background(), id)
|
|
||||||
if err != nil {
|
|
||||||
return richerror.New(op).WithErr(err)
|
|
||||||
}
|
|
||||||
if k.Status == entity.KindBoxReqRejectedStatus {
|
|
||||||
return richerror.New(op).WithMessage(errmsg.ErrorMsgReRejectKindBoxReq).WithMeta(map[string]interface{}{
|
|
||||||
"id": id,
|
|
||||||
}).WithKind(richerror.KindInvalid)
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (d DB) RejectKindBoxReq(ctx context.Context, kindBoxReqID uint, description string) error {
|
func (d DB) RejectKindBoxReq(ctx context.Context, kindBoxReqID uint, description string) error {
|
||||||
op := richerror.Op("mysqlkindboxreq.RejectKindBoxReq")
|
op := richerror.Op("mysqlkindboxreq.RejectKindBoxReq")
|
||||||
statement, err := d.conn.Conn().
|
statement, err := d.conn.Conn().
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
package adminkindboxreqvalidator
|
package adminkindboxreqvalidator
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"git.gocasts.ir/ebhomengo/niki/entity"
|
||||||
|
|
||||||
errmsg "git.gocasts.ir/ebhomengo/niki/pkg/err_msg"
|
errmsg "git.gocasts.ir/ebhomengo/niki/pkg/err_msg"
|
||||||
)
|
)
|
||||||
|
@ -18,8 +20,7 @@ type Repository interface {
|
||||||
// TypeExist(id int) (bool, error)
|
// TypeExist(id int) (bool, error)
|
||||||
// KindBoxBelongToBenefactor(benefactorID uint, kindboxID uint) (bool, error)
|
// KindBoxBelongToBenefactor(benefactorID uint, kindboxID uint) (bool, error)
|
||||||
// PendingStatus(id uint) (bool, error)
|
// PendingStatus(id uint) (bool, error)
|
||||||
CheckKindBoxReqStatusForAccepting(id uint) error
|
GetByID(ctx context.Context, id uint) (entity.KindBoxReq, error)
|
||||||
CheckKindBoxReqStatusForRejecting(id uint) error
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type Validator struct {
|
type Validator struct {
|
||||||
|
@ -79,10 +80,13 @@ func (v Validator) CheckKindBoxReqStatusForAccepting(value interface{}) error {
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf(errmsg.ErrorMsgSomethingWentWrong)
|
return fmt.Errorf(errmsg.ErrorMsgSomethingWentWrong)
|
||||||
}
|
}
|
||||||
err := v.repo.CheckKindBoxReqStatusForAccepting(kindboxreqID)
|
kindBox, err := v.repo.GetByID(context.Background(), kindboxreqID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if kindBox.Status != entity.KindBoxReqPendingStatus {
|
||||||
|
return fmt.Errorf(errmsg.ErrorMsgAcceptKindBoxReqStatus)
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -92,10 +96,13 @@ func (v Validator) CheckKindBoxReqStatusForRejecting(value interface{}) error {
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf(errmsg.ErrorMsgSomethingWentWrong)
|
return fmt.Errorf(errmsg.ErrorMsgSomethingWentWrong)
|
||||||
}
|
}
|
||||||
err := v.repo.CheckKindBoxReqStatusForRejecting(kindboxreqID)
|
kindBox, err := v.repo.GetByID(context.Background(), kindboxreqID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if kindBox.Status != entity.KindBoxReqPendingStatus {
|
||||||
|
return fmt.Errorf(errmsg.ErrorMsgRejectKindBoxReqStatus)
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue