Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jlenon7/linkapi-test
🧪 Project developed in test for LinkApi
https://github.com/jlenon7/linkapi-test
Last synced: 9 days ago
JSON representation
🧪 Project developed in test for LinkApi
- Host: GitHub
- URL: https://github.com/jlenon7/linkapi-test
- Owner: jlenon7
- Created: 2021-02-22T14:09:27.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2021-02-25T12:50:14.000Z (almost 4 years ago)
- Last Synced: 2024-10-05T23:41:40.311Z (3 months ago)
- Language: TypeScript
- Homepage:
- Size: 414 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# LinkAPI Test 🧠
> Project developed in test for LinkApi
[![GitHub followers](https://img.shields.io/github/followers/jlenon7.svg?style=social&label=Follow&maxAge=2592000)](https://github.com/jlenon7?tab=followers)
[![GitHub stars](https://img.shields.io/github/stars/jlenon7/linkapi-test.svg?style=social&label=Star&maxAge=2592000)](https://github.com/jlenon7/linkapi-test/stargazers/)
Uma `API` que integre os serviços `Pipedrive` e `Bling`, a fim de poder realizar pedidos de vendas para fornecedores dentro do `Bling`.
## ENDPOINTS
| METHOD | URI | NAME |
| --------- | --------------------- | ----------------- |
| GET | api/v1/orders | orders.index |
| POST | api/v1/orders | orders.store |
| GET | api/v1/orders/:token | orders.show |### Query Search em orders.index
Listagem paginadas: `?offset=0&limit=10`
Listagem entre preços: `?since_price=2000.00&max_price=4000.00`
Listagem entre datas: `?since_date=2021-02-23T05:00:00.000Z&max_date=2021-02-24T06:00:00.000Z`
---
| METHOD | URI | NAME |
| --------- | -------------------- | ----------------|
| GET | /api/v1/auth/me | auth.me |
| POST | /api/v1/auth/login | auth.login |
| POST | /api/v1/auth/register| auth.register |JSON Example POST Register
```json
{
"name": "João Lenon",
"email": "[email protected]",
"password": "12345678",
"password_confirmation": "12345678",
}
```## OBSERVAÇÃO
Essa API está rodando dentro de um servidor no Heroku apenas para ver o funcionamento do `Webhook` e para ter um acesso mais simplificado ao `Swagger`. [Clique aqui para acessar!](https://linkapi-test.herokuapp.com/api/swagger) PS: Aguarde o carregamento da página. Como está no plano free, o Heroku desliga a máquina automaticamente quando o servidor para de ser consumido, e só quando uma nova requisição chega que ele roda o servidor novamente, esse processo demora um pouco.
Não esqueça de criar o arquivo com as váriaveis de ambiente para rodar os testes ou modo development.
## COMANDOS
Instale as dependências
```bash
yarn
```Gere o arquivo .env
```bash
cp .env.example .env && cp .env.example .env.testing
```Para rodar os testes E2E e Unitários
```bash
yarn test
```Para rodar a aplicação em modo desenvolvimento
```bash
yarn start:dev
```## OBJETIVO
- [x] Deverá construir uma API RESTful usando a tecnologia NodeJS.
## REQUISITOS
- [x] Criar contas testes nas plataformas Pipedrive e Bling.
- [x] 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).
- [x] Criar banco de dados mongo, existem serviços como MongoDB Atlas para criar de graça
- [x] Criar uma collection no banco de dados MongoDB agregando as oportunidades inseridas no Bling por dia e valor total.
- [x] Criar endpoint para trazer os dados consolidados da collection do MongoDB.## INSTRUÇÕES
- [x] Desenvolva e versione o projeto usando git
- [x] Utilize o GitHub para hospedar o código
- [x] Enviar o link do repositório para [email protected]## O QUE SERÁ AVALIADO
- Quantidade de requisitos realizados
- Desacoplamento de código
- Legibilidade
- Boas práticas de desenvolvimento de API RESTful
- Performance## SELF IMPROVEMENTS
- [ ] Enfileirar as requisições das collections com RabbitMQ
- [x] Pipeline CI
- [x] Autenticação JWT
- [x] Adicionar Rate limiter
- [x] Criar testes end2end para os endpoints de Auth
- [x] Criar testes end2end para os endpoints de Orders
- [x] Criar testes unitários para a collection do Bling
- [x] Criar testes unitários para a collection do Pipedrive
- [x] Implementar Webhook para quando um Deal for atualizado no Pipedrive ajustar no Bling