Skip to content

CauaMatheus/Kafka-Connection

Repository files navigation

Kafka-Connection

Sumário

🗒️ Descrição

Esse repositório contém 2 microsserviços que se comunicam por um sistema de fila Kafka.
Um deles busca as "deals" na api do pipedrive, salva o histórico em um banco MongoDB e envia para o outro microsserviço as informações da "deal".
Esse microsserviço escuta a porta 3000

O outro microsserviço recebe essas informações e salva em um banco Postgres. Por meio de endpoints REST, é possível que liste todas essas "deals", ou se preferir, buscar por data de sincronização.
Esse microsserviço escuta a porta 3001

🔗 Rotas

GET localhost:3000/fetchDeals

Essa rota serve para buscar os dados na api do pipedrive e mandar as informações para o outro microsserviço.

GET localhost:3001/orders

Essa rota serve para listar todos os pedidos salvos.

GET localhost:3001/orders/:date

Essa rota recebe uma data pelos parâmetros da rota e retorna todos os pedidos que foram salvos nesse dia.

❓ Explicações

Durante o desenvolvimento, em alguns momentos o docker-compose não registrava as variáveis da .env dentro do pacote order-management. Para evitar isso, duplique a .env.example do root directory, renomeie para .env e escreva novamente os valores de forma que fique idêntica a .env do pacote order-management.

🔠 Variáveis de ambiente

PG_USER: Username para criar e conectar ao banco postgres.
PG_PASS: Senha para criar e conectar ao banco postgres.
PG_DB: Nome do banco para criar e conectar ao banco postgres.
API_TOKEN: Token da api do pipedrive para fazer as requisições.

🤖 Testes automatizados

Antes de rodar os testes, é necessário ter um baco de dados postgres com o nome test e com a mesma senha/username. Se você utiliza o Beekeeper-Studio, basta rodar a query:

CREATE DATABASE test

Após isso, no root-directory, digite o comando:

yarn test

🤔 Como usar ?

  1. Primeiro clone esse repositório e instale as dependências.
git clone https://github.com/CauaMatheus/Desafio-Back-end-Junior.git
cd Desafio-Back-end-Junior
yarn
  1. Dentro de cada pacote tem uma .env.example. Duplique ela e renomeie para .env, após isso complete com os valores desejáveis.

  2. Rode os containers no root directory com o comando:

docker-compose up -d
  1. Rode as migrations do banco de dados:
yarn migration:run
  1. Agora você poderá ver os logs de cada container com os comandos:
docker logs pipedrive -f
docker logs order-management -f

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published