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 }