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  }