generated from PenaSide/GolangTemplate
63 lines
2.0 KiB
Go
63 lines
2.0 KiB
Go
package utils
|
|
|
|
import (
|
|
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/errors"
|
|
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/models"
|
|
"penahub.gitlab.yandexcloud.net/pena-services/customer/pkg/validate"
|
|
)
|
|
|
|
func ValidateGetPaymentLinkBody(request *models.GetPaymentLinkBody) errors.Error {
|
|
if request == nil {
|
|
return errors.NewWithMessage("request body is empty", errors.ErrInvalidArgs)
|
|
}
|
|
|
|
switch request.Type {
|
|
case models.PaymentTypeInstallments, models.PaymentTypeSBP, models.PaymentTypeTinkoff, models.PaymentTypeYoomoney:
|
|
return nil
|
|
case models.PaymentTypeQiwi, models.PaymentTypeSberPay, models.PaymentTypeMobile, models.PaymentTypeCash:
|
|
return validateMobilePayment(request)
|
|
case models.PaymentTypeAlfabank:
|
|
return validateLoginPayment(request)
|
|
case models.PaymentTypeBankCard:
|
|
return validateBankcardPayment(request)
|
|
default:
|
|
return errors.NewWithMessage("unknown payment type", errors.ErrInvalidArgs)
|
|
}
|
|
}
|
|
|
|
func validateMobilePayment(request *models.GetPaymentLinkBody) errors.Error {
|
|
if validate.IsStringEmpty(request.PhoneNumber) {
|
|
return errors.NewWithMessage("phone number is empty", errors.ErrInvalidArgs)
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func validateLoginPayment(request *models.GetPaymentLinkBody) errors.Error {
|
|
if validate.IsStringEmpty(request.Login) {
|
|
return errors.NewWithMessage("login is empty", errors.ErrInvalidArgs)
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func validateBankcardPayment(request *models.GetPaymentLinkBody) errors.Error {
|
|
if request.BankCard == nil {
|
|
return errors.NewWithMessage("bank card is empty", errors.ErrInvalidArgs)
|
|
}
|
|
|
|
if validate.IsStringEmpty(request.BankCard.Number) {
|
|
return errors.NewWithMessage("bankcard number is empty", errors.ErrInvalidArgs)
|
|
}
|
|
|
|
if validate.IsStringEmpty(request.BankCard.ExpiryYear) {
|
|
return errors.NewWithMessage("bankcard expiry year is empty", errors.ErrInvalidArgs)
|
|
}
|
|
|
|
if validate.IsStringEmpty(request.BankCard.ExpiryMonth) {
|
|
return errors.NewWithMessage("bankcard expiry month is empty", errors.ErrInvalidArgs)
|
|
}
|
|
|
|
return nil
|
|
}
|