28 lines
683 B
Go
28 lines
683 B
Go
package validation
|
|
|
|
import (
|
|
"GoMembership/internal/models"
|
|
|
|
"github.com/go-playground/validator/v10"
|
|
"github.com/jbub/banking/iban"
|
|
"github.com/jbub/banking/swift"
|
|
)
|
|
|
|
func validateBankAccount(sl validator.StructLevel) {
|
|
ba := sl.Current().Interface().(models.User).BankAccount
|
|
if !ibanValidator(ba.IBAN) {
|
|
sl.ReportError(ba.IBAN, "IBAN", "BankAccount.IBAN", "required", "")
|
|
}
|
|
if ba.BIC != "" && !bicValidator(ba.BIC) {
|
|
sl.ReportError(ba.IBAN, "IBAN", "BankAccount.IBAN", "required", "")
|
|
}
|
|
}
|
|
|
|
func ibanValidator(fieldValue string) bool {
|
|
return iban.Validate(fieldValue) == nil
|
|
}
|
|
|
|
func bicValidator(fieldValue string) bool {
|
|
return swift.Validate(fieldValue) == nil
|
|
}
|