@@ -7,12 +7,12 @@ import (
77)
88
99var (
10- errInvalidINNLength = errors .New ("invalid inn length" )
11- errInvalidBIKLength = errors .New ("invalid bik length" )
10+ ErrInvalidINNLength = errors .New ("invalid inn length" )
11+ ErrInvalidBIKLength = errors .New ("invalid bik length" )
1212
13- errInvalidValue = errors .New ("invalid code value" )
13+ ErrInvalidValue = errors .New ("invalid code value" )
1414
15- errInvalidBIKCountryCode = errors .New ("invalid bik country code" )
15+ ErrInvalidBIKCountryCode = errors .New ("invalid bik country code" )
1616)
1717
1818func strToArr (str string ) ([]int , error ) {
@@ -21,7 +21,7 @@ func strToArr(str string) ([]int, error) {
2121 for _ , number := range numbers {
2222 number , err := strconv .Atoi (number )
2323 if err != nil {
24- return []int {}, errInvalidValue
24+ return []int {}, ErrInvalidValue
2525 }
2626 arr = append (arr , number )
2727 }
@@ -30,7 +30,7 @@ func strToArr(str string) ([]int, error) {
3030
3131func ValidateINN (inn string ) (bool , error ) {
3232 if len (inn ) != 10 && len (inn ) != 12 {
33- return false , errInvalidINNLength
33+ return false , ErrInvalidINNLength
3434 }
3535 innArr , err := strToArr (inn )
3636 if err != nil {
@@ -47,23 +47,21 @@ func ValidateINN(inn string) (bool, error) {
4747
4848func ValidateBIK (bik string ) (bool , error ) {
4949 if len (bik ) != 9 {
50- return false , errInvalidBIKLength
50+ return false , ErrInvalidBIKLength
5151 }
5252 bikArr , err := strToArr (bik )
5353 if err != nil {
5454 return false , err
5555 }
56- if bikArr [0 ] != 0 && bik [1 ] != 4 {
57- return false , errInvalidBIKCountryCode
56+ if bikArr [0 ] != 0 || bikArr [1 ] != 4 {
57+ return false , ErrInvalidBIKCountryCode
5858 }
59- if bikArr [6 ] == 0 && bikArr [7 ] == 1 && bikArr [8 ] == 0 {
59+ // special code
60+ if bikArr [6 ] == 0 && bikArr [7 ] == 1 && bikArr [8 ] == 2 {
6061 return true , nil
6162 }
6263 latestTriadStr := bik [6 :]
63- code , err := strconv .Atoi (latestTriadStr )
64- if err != nil {
65- return false , errInvalidValue
66- }
64+ code , _ := strconv .Atoi (latestTriadStr )
6765 return code >= 50 && code < 1000 , nil
6866}
6967
0 commit comments