Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/valchanoficial/desafiodatabaserelations
Rocketseat - Desafio: Database relations
https://github.com/valchanoficial/desafiodatabaserelations
express javascript jest nodejs pg postgresql typeorm typescript
Last synced: 4 days ago
JSON representation
Rocketseat - Desafio: Database relations
- Host: GitHub
- URL: https://github.com/valchanoficial/desafiodatabaserelations
- Owner: ValchanOficial
- Created: 2020-09-13T00:05:34.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2023-01-24T03:52:12.000Z (almost 2 years ago)
- Last Synced: 2023-03-04T06:56:55.796Z (over 1 year ago)
- Topics: express, javascript, jest, nodejs, pg, postgresql, typeorm, typescript
- Language: TypeScript
- Homepage:
- Size: 1.72 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Rocketseat - Desafio: Database relations
## Sobre o desafio
Desenvolvimento de uma nova aplicação para reforçar os conhecimentos em Node.js junto ao TypeScript, incluindo o uso de banco de dados com o TypeORM, e relacionamentos ManyToMany.
Essa será uma aplicação que deve permitir a criação de clientes, produtos e pedidos, onde o cliente pode gerar novos pedidos de compra de certos produtos, como um pequeno e-commerce.## Requisitos técnicos
- PostgreSQL (infos no arquivo ormconfig.json)## Rotas
- **`POST /customers:`** A rota deve receber name e email dentro do corpo da requisição, sendo o name o nome do cliente a ser cadastrado. Ao cadastrar um novo cliente, ele deve ser armazenado dentro do seu banco de dados e deve ser retornado o cliente criado. Ao cadastrar no banco de dados, na tabela customers deverá possuir os campos name, email, created_at, updated_at.
- **`POST /products:`** Essa rota deve receber name, price e quantity dentro do corpo da requisição, sendo o name o nome do produto a ser cadastrado, price o valor unitário e quantity a quantidade existente em estoque do produto. Com esses dados devem ser criados no banco de dados um novo produto com os seguintes campos: name, price, quantity, created_at, updated_at.
- **`POST /orders/:`** Nessa rota você deve receber no corpo da requisição o customer_id e um array de products, contendo o id e a quantity que você deseja adicionar a um novo pedido. Aqui você deve cadastrar na tabela order um novo pedido, que estará relacionado ao customer_id informado, created_at e updated_at . Já na tabela orders_products, você deve armazenar o product_id, order_id, price e quantity, created_at e updated_at.
- **`GET /orders/id:`** Essa rota deve retornar as informações de um pedido específico, com todas as informações que podem ser recuperadas através dos relacionamentos entre a tabela orders, customers e orders_products.## Start
```js
yarn // instala dependências
yarn typeorm migration:run // cria tabelas
yarn dev:server // inicia aplicação
yarn test // executa os testes
```