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