Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ruan-miguel/product-publishing

Api para publicação de produtos
https://github.com/ruan-miguel/product-publishing

chai faker mocha mongoose mongoose-paginate node nyc typescript

Last synced: 14 days ago
JSON representation

Api para publicação de produtos

Awesome Lists containing this project

README

        

# Product-publishing
API para publicação de produtos

## Requisitos de funcionamento

1. Mongodb funcionando na porta 27017

## Scripts disponíveis

### `yarn dev`

Executa o aplicativo no modo de desenvolvimento

Qualquer mudança salva reiniciará o servidor automaticamente

### `yarn test`

Executa os testes da API

### `yarn cover`

Mostra a cobertura do código pelos testes

## Autentição

As rotas dessa API que requerem autenticação utilizam de tokens jwt

## Rotas

- ### Criação de usuário

Cria um usuário e retorna um token de acesso

#### URL

POST http://localhost:8080/users

#### Informações


Requer autenticação?
Não

#### Parâmetros


name
Required
Nome atribuído a conta
string


email
Required
Utilizado para login
string


password
Required
Utilizado para login
string


dateOfBirth
Required
Utilizado para definir a idade do usuário
string no formato: yyyy-mm-dd


- ### Login de usuário

Autentica o usuário no sistema e retorna um token de acesso

#### URL

POST http://localhost:8080/users/login

#### Informações


Requer autenticação?
Não

#### Parâmetros


email
Required
string


password
Required
string


- ### Busca de usuário

Realiza uma busca por usuários que possuam os parâmetros enviados

#### URL

GET http://localhost:8080/users

#### Informações


Requer autenticação?
Não

#### Parâmetros


_id
Optional
string
Caso este parâmetro seja informado, qualquer outro parâmetro que também tenha sido informado será desconsiderado e apenas será retornado o usuário a que esse _id pertence, sem o uso de paginação


page
Optional
unsigned integer
Caso este parâmetro não seja informado, e a pesquisa em questão fizer uso de paginação, este parâmetro receberá o valor 1 como default


limit
Optional
unsigned integer
Caso este parâmetro não seja informado, e a pesquisa em questão fizer uso de paginação, este parâmetro receberá o valor 10 como default


name
Optional
string
Caso este parâmetro seja informado, será feita uma busca por usuários que possuam a string informada inclusa em seus nomes. Para esse parâmetro a busca não diferencia letras maiúsculas e minúsculas


email
Optional
string
Caso este parâmetro seja informado, será feita uma busca por usuários que possuam a string informada inclusa em seus emails. Para esse parâmetro a busca não diferencia letras maiúsculas e minúsculas


- ### Remoção de usuário

Remove o usuário e seus produtos do banco de dados com base no token de acesso fornecido

#### URL

DEL http://localhost:8080/users

#### Informações


Requer autenticação?
Sim


- ### Criação de produto

Cria um produto e retorna seu id

#### URL

POST http://localhost:8080/products

#### Informações


Requer autenticação?
Sim

#### Parâmetros


name
Required
string


description
Optional
string


categories
Required
array de strings


price
Required
número real positivo


image
Required
string


- ### Busca de produto

Realiza uma busca por produtos que possuam os parâmetros enviados

#### URL

GET http://localhost:8080/products

#### Informações


Requer autenticação?
Não

#### Parâmetros


_id
Optional
string
Caso este parâmetro seja informado, qualquer outro parâmetro que também tenha sido informado será desconsiderado e apenas será retornado o produto a que esse _id pertence, sem o uso de paginação


page
Optional
unsigned integer
Caso este parâmetro não seja informado, e a pesquisa em questão fizer uso de paginação, este parâmetro receberá o valor 1 como default


limit
Optional
unsigned integer
Caso este parâmetro não seja informado, e a pesquisa em questão fizer uso de paginação, este parâmetro receberá o valor 10 como default


name
Optional
string
Caso este parâmetro seja informado, será feita uma busca por produtos que possuam a string informada inclusa em seus nomes. Para esse parâmetro a busca não diferencia letras maiúsculas e minúsculas


categories
Optional
string
Caso este parâmetro seja informado, será feita uma busca por produtos que possuam essa categoria


owner
Optional
string
Caso este parâmetro seja informado, será feita uma busca por produtos que pertençam a esse propietário


maxPrice
Optional
números reais positivos
Caso este parâmetro seja informado, será feita uma busca por produtos q possuam preço menor que este


- ### Atualização de produto

Atualiza as propriedades do produto informado

#### URL

PTCH http://localhost:8080/products

#### Informações


Requer autenticação?
Sim

#### Parâmetros


productId
Required
string


description
Optional
string


categories
Optional
array de string


price
Optional
número real positivo


image
Optional
string


- ### Remoção de produto

Remove o produto informado do banco de dados

#### URL

DEL http://localhost:8080/products

#### Informações


Requer autenticação?
Sim

#### Parâmetros


productId
Required
string