github.com/mundipagg/boleto-api@v0.0.0-20230620145841-3f9ec742599f/boleto/config.go (about)

     1  package boleto
     2  
     3  import (
     4  	"html/template"
     5  
     6  	"github.com/mundipagg/boleto-api/models"
     7  )
     8  
     9  //ConfigBank configure html template for each bank
    10  type ConfigBank struct {
    11  	Logo         template.HTML
    12  	EspecieDoc   string
    13  	Aceite       string
    14  	Quantidade   string
    15  	ValorCotacao string
    16  	Moeda        string
    17  }
    18  
    19  //GetConfig returns boleto configution for each bank
    20  func GetConfig(boleto models.BoletoRequest) ConfigBank {
    21  	switch boleto.BankNumber {
    22  	case models.BancoDoBrasil:
    23  		return configBB(boleto)
    24  	case models.Santander:
    25  		return configSantander(boleto)
    26  	case models.Citibank:
    27  		return configCiti(boleto)
    28  	case models.Bradesco:
    29  		return configBradesco(boleto)
    30  	case models.Caixa:
    31  		return configCaixa(boleto)
    32  	case models.Itau:
    33  		return configItau(boleto)
    34  	case models.Pefisa:
    35  		return configPefisa(boleto)
    36  	case models.Stone:
    37  		return configStone(boleto)
    38  	case models.JPMorgan:
    39  		return configJPMorgan(boleto)
    40  	default:
    41  		return configBB(boleto)
    42  	}
    43  }
    44  
    45  func configCiti(boleto models.BoletoRequest) ConfigBank {
    46  	return ConfigBank{Logo: template.HTML(LogoCiti), EspecieDoc: boleto.Title.BoletoType, Aceite: "N", Quantidade: "", ValorCotacao: "", Moeda: "R$"}
    47  }
    48  
    49  func configBB(boleto models.BoletoRequest) ConfigBank {
    50  	return ConfigBank{Logo: template.HTML(LogoBB), EspecieDoc: boleto.Title.BoletoType, Aceite: "N", Quantidade: "N", ValorCotacao: "", Moeda: "R$"}
    51  }
    52  
    53  func configCaixa(boleto models.BoletoRequest) ConfigBank {
    54  	return ConfigBank{Logo: template.HTML(LogoCaixa), EspecieDoc: boleto.Title.BoletoType, Aceite: "N", Quantidade: "", ValorCotacao: "", Moeda: "R$"}
    55  }
    56  
    57  func configSantander(boleto models.BoletoRequest) ConfigBank {
    58  	return ConfigBank{Logo: template.HTML(LogoSantander), EspecieDoc: boleto.Title.BoletoType, Aceite: "N", Quantidade: "N", ValorCotacao: "", Moeda: "R$"}
    59  }
    60  
    61  func configItau(boleto models.BoletoRequest) ConfigBank {
    62  	return ConfigBank{Logo: template.HTML(LogoItau), EspecieDoc: boleto.Title.BoletoType, Aceite: "N", Quantidade: "N", ValorCotacao: "", Moeda: "R$"}
    63  }
    64  
    65  func configPefisa(boleto models.BoletoRequest) ConfigBank {
    66  	return ConfigBank{Logo: template.HTML(LogoPefisa), EspecieDoc: boleto.Title.BoletoType, Aceite: "N", Quantidade: "", ValorCotacao: "", Moeda: "R$"}
    67  }
    68  
    69  func configStone(boleto models.BoletoRequest) ConfigBank {
    70  	return ConfigBank{Logo: template.HTML(LogoStone), EspecieDoc: boleto.Title.BoletoType, Aceite: "N", Quantidade: "", ValorCotacao: "", Moeda: "R$"}
    71  }
    72  
    73  func configJPMorgan(boleto models.BoletoRequest) ConfigBank {
    74  	return ConfigBank{Logo: template.HTML(LogoJPMorgan), EspecieDoc: boleto.Title.BoletoType, Aceite: "N", Quantidade: "", ValorCotacao: "", Moeda: "R$"}
    75  }
    76  
    77  func configBradesco(boleto models.BoletoRequest) ConfigBank {
    78  	switch boleto.Agreement.Wallet {
    79  	case 4, 9, 19:
    80  		return ConfigBank{Logo: template.HTML(LogoBradesco), EspecieDoc: boleto.Title.BoletoType, Aceite: "N", Quantidade: "", ValorCotacao: "", Moeda: "Real"}
    81  	case 25, 26:
    82  		return ConfigBank{Logo: template.HTML(LogoBradesco), EspecieDoc: boleto.Title.BoletoType, Aceite: "N", Quantidade: "", ValorCotacao: "", Moeda: "Real"}
    83  	default:
    84  		return ConfigBank{Logo: template.HTML(LogoBradesco), EspecieDoc: boleto.Title.BoletoType, Aceite: "N", Quantidade: "", ValorCotacao: "", Moeda: "Real"}
    85  	}
    86  }