O serviço irá ler o arquivo de entrada, separar as linhas em colunas, realizar a higienização dos dados (remover acentos e converter para maiúsculo), validar os CPFs/CNPJs e persistir os dados no banco de dados PostgreSQL. Além disso, o serviço utiliza o padrão Clean Code ao nomear variáveis, funções e estruturas de dados de forma clara e concisa. Também são incluídos comentários no código para explicar o funcionamento de cada parte do serviço. Por fim, é importante destacar que o serviço foi otimizado para ter uma performance de 1 minuto, utilizando contextos para controlar o tempo máximo de execução e transações para reduzir a quantidade de operações de I/O no banco de dados.
database/sqlFornece uma interface de banco de dados SQL genéricaenconding/csvlê e grava arquivos CSVfmtfornece funções de formataçãoiofornece primitivas básicas de E/S.logfornece um pacote de registro simples.osfornece uma interface independente de uma plataforma para o sistema operacional.regexpfornece funcionalidade de expressão regilarstrconvfornece funções para converter strings em tipos numéricosstringsfornece funções para manipular stringsgithub.com/go-playground/validatorfornece um pacote de validação
O código define uma estrutura chamada Record que apresente um único registro do arquivo csv/txt. Cada campo na struct possui uma marca de validação que especifica as regras de validaçã para o campo. As regras são dfinidas através da função validator.
A função CleanData remove espaços em branco iniciais e finais de cada campo nos dados.
A função InsertData insere os dados em um banco de dados PostgreSQL.
A função ValidateRecords valida cada registro nos dados utilizando a função validator
A função main lê os dados do arquivo, inseri no banco de dados e valida os campos. Se qualquer uma dessas etapas falhar, o programa registrará uma mensagem de erro e será encerrado.
docker-compose up
Atualmente venho me deparado com o erro abaixo, mesmo tenho feito todas as importações e seguindo os comando de 'go.mod init' e 'go.mod tidy'
> [7/7] RUN go build -o main .:
#0 1.741 go: github.com/go-playground/locales@v0.14.1 requires
#0 1.741 golang.org/x/text@v0.3.8: missing go.sum entry; to add it:
#0 1.741 go mod download golang.org/x/text