guiluizmaia / DesafioEWZ

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

  • -Criar contas testes nas plataformas Pipedrive e Bling.
  • - Criar uma integração entre as plataformas Pipedrive e Bling. (A integração deve buscar as oportunidades com status igual a "ganho" no Pipedrive, depois inseri-las como pedido no Bling).
  • - Criar banco de dados SQL(preferência por PostgreSQL).
  • - Criar uma Tabela no banco de dados para salvar as oportunidades inseridas no Bling que deve armazenar as seguintes informações.
  • Valor do produto;
  • Data da sincronização;
  • - Criar endpoint para trazer todos os registros agrupados por data.
  • - Criar endpoint para trazer os dados sincronizados em uma data específica.

DESCRIÇÃO DA APLICAÇÃO

.A cada 600000 milissegundos(10 minutos) o PipedriveController.execute é chamado e nele pegamos o retorno do PipedriveConnection.execute (Conexão). Com o retorno pega a api do pipedrive e faz um getAllDeals aonde os deals for igual a won e por fim passa esse objeto para o BlingController.create.


.No BlingController.create desestruturamos e pegamos só os dados necessários para fazer o post no Bling(Realizamos o post com o Axios). e por fim chamamos outra função da mesma classe que tem o intuito de fazer um get de todos os pedidos do bling e enviar o retorno para o PedidoRepository.execute.


.O PedidoRepository.execute tem a função de desestruturar o objeto recebido e salvar as informações requisitadas no BD.


.Já nas rotas, a rota './' faz um get com todos os itens do banco de dados com um order by focado nas datas de forma decrescente (os mais novos ficam por cima), e a rota '/:data' recebe como parâmetro uma data e retorna todos os itens do banco que tiverem ela

About


Languages

Language:TypeScript 100.0%