github.com/mundipagg/boleto-api@v0.0.0-20230620145841-3f9ec742599f/issuer/issuer.go (about) 1 package issuer 2 3 import "regexp" 4 5 type Issuer struct { 6 barCode string 7 digitableLine string 8 } 9 10 const ( 11 barCodePattern = `^\d+$` 12 digitableLinePattern = `^\d{5}\.\d{5}\s\d{5}\.\d{6}\s\d{5}\.\d{6}\s\d{1}\s\d+$` 13 ) 14 15 //NewIssuer Instancia um objeto Issuer com código de barras e linha digitável 16 func NewIssuer(barcode, digitableLine string) *Issuer { 17 issuer := new(Issuer) 18 issuer.barCode = barcode 19 issuer.digitableLine = digitableLine 20 21 return issuer 22 } 23 24 //IsValidBarCode Verifica se o barCode contém apenas dígitos numéricos 25 func (i *Issuer) IsValidBarCode() bool { 26 isValid, _ := regexp.Match(barCodePattern, []byte(i.barCode)) 27 28 return isValid 29 } 30 31 //IsValidDigitableLine Verifica se o digitableLine está de acordo com o padrão 99999.99999 99999.999999 99999.999999 9 99999999999999 32 func (i *Issuer) IsValidDigitableLine() bool { 33 isValid, _ := regexp.Match(digitableLinePattern, []byte(i.digitableLine)) 34 35 return isValid 36 }