forked from ebhomengo/niki
41 lines
965 B
Go
41 lines
965 B
Go
package service
|
|
|
|
import (
|
|
"regexp"
|
|
|
|
errmsg "git.gocasts.ir/ebhomengo/niki/pkg/err_msg"
|
|
validation "github.com/go-ozzo/ozzo-validation"
|
|
)
|
|
|
|
const (
|
|
PhoneNumberRegex = "^(0|0098|\\+98)9(0[1-5]|[1 3]\\d|2[0-2]|98)\\d{7}$"
|
|
)
|
|
|
|
type Validator struct{}
|
|
|
|
func NewValidator() Validator {
|
|
return Validator{}
|
|
}
|
|
|
|
func (v Validator) ValidateSendOtpRequest(req SendOtpRequest) error {
|
|
err := validation.ValidateStruct(&req,
|
|
validation.Field(req.PhoneNumber,
|
|
validation.Required,
|
|
validation.Match(regexp.MustCompile(PhoneNumberRegex)).Error(errmsg.ErrorMsgPhoneNumberIsNotValid),
|
|
))
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
func (v Validator) ValidateLoginOrRegisterRequest(req LoginOrRegisterRequest) error {
|
|
err := validation.ValidateStruct(&req,
|
|
validation.Field(req.PhoneNumber,
|
|
validation.Required,
|
|
validation.Match(regexp.MustCompile(PhoneNumberRegex)).Error(errmsg.ErrorMsgPhoneNumberIsNotValid)),
|
|
validation.Field(req.VerifyCode,
|
|
validation.Required))
|
|
|
|
return err
|
|
}
|