Construir uma REST API em MongoDB que permita fazer a adição de diversas ONGS e a funcionalidade de realizar doações para a mesma.
- Deve realizar CRUD de ONGs
- Deve permitir a realização de doações (pagamento fictício)
- CRUD de ONGs, Voluntários, Doadores e Doações.
- O Doador pode doar valores monetários ou itens
- Ao realizar uma doação, os itens doados são registrados na ONG e o ID da doação atrelado ao doador.
- Ao se deletar uma doação, o seu ID será excluído do doador e os itens doados removidos da ONG.
git clone https://github.com/agorasoudev/soul-doacao.git
- Primeiro instalamos as dependências.
npm install
- Em seguida, renomeamos o arquivo .env.local para .env
- Dentro do arquivo .env, iremos preencher com a URL do servidor atlas - MongoDB
npm run dev
Ongs
- Create: POST:
localhost:3333/ong/create
Todos os campos com exceção de site e telefone são obrigatórios para se registrar uma ONG.
Segue exemplo de JSON.:
{ "name" : "Soul Doação", "endereco" : "Rua Angra dos Reis", "segmento" : "Conectividade", "cnpj" : "80.580.861/0001-25", "n_funcionarios" : 4, "contato" : { "email" :"[email protected]", "site" : "https://soudoacao.com.br", "telefone" : "11999999999" }, "caixa" : 100 }
- Read All: GET:
localhost:3333/ongs
Ao executar, será retornado uma lista com todas as ONGS cadastradas.
- Read One: GET:
localhost:3333/ong/:id
Necessário informar o ID da ong na URI.
O ID será gerado automaticamente na hora da criação da ONG
- UPDATE: PATCH:
localhost:3333/ong/:id
Necessário informar o ID da ong na URI.
O ID será gerado automaticamente na hora da criação da ONG
Passar o que deseja alterar no body. (os campos não são obrigatórios)
{ "name" : "Soul Doação", "endereco" : "Rua Angra dos Reis", "segmento" : "Conectividade", "cnpj" : "80.580.861/0001-25", "n_funcionarios" : 4, "contato" : { "email" :"[email protected]", "site" : "https://soudoacao.com.br", "telefone" : "11999999999" }, "caixa" : 100 }
- DESTROY: DELETE:
localhost:3333/ong
Informe o ID ou o E-mail da ONG que deseja deletar no body.
OBS: Caso informe os 2, o ID será priorizado
{ "id" : "5e9f8f8f8f8f8f8f8f8f8f8", "email" :"[email protected]" }
Doador
- Create: POST:
localhost:3333/doador/create
Cadastra um novo doador. Os únicos dados obrigatórios são o nome e o email.
Segue exemplo de JSON.:
{ "name": "José Vinicius", "estado": "PE", "contato": { "email": "[email protected]", "telefone": "81999999999" } }
- Read All: GET:
localhost:3333/doadores
Ao executar, será retornado uma lista com todos os doadores cadastradas.
- Read One: GET:
localhost:3333/doador/:id
Necessário informar o ID do doador na URI.
O ID será gerado automaticamente na hora da criação do doador
- UPDATE: PATCH:
localhost:3333/doador/:id
Necessário informar o ID do doador na URI.
O ID será gerado automaticamente na hora da criação do doador
Passar o que deseja alterar no body. (os campos não são obrigatórios)
{ "name": "José Vinicius", "estado": "PE", "contato": { "email": "[email protected]", "telefone": "81999999999" } }
- DESTROY: DELETE:
localhost:3333/doador/:id
Informe o ID do doador que deseja deletar na URI.
Voluntários
- Create: POST:
localhost:3333/voluntario/create
Cadastra um novo voluntario. Os únicos dados obrigatórios são o nome e o email.
Segue exemplo de JSON.:
{ "name": "Alexandre", "email": "[email protected]", "telefone": "11999999999" }
- Read All: GET:
localhost:3333/voluntarios
Ao executar, será retornado uma lista com todos os voluntarios cadastradas.
- Read One: GET:
localhost:3333/voluntario/:id
Necessário informar o ID do voluntario na URI.
O ID será gerado automaticamente na hora da criação do voluntario
- UPDATE: PATCH:
localhost:3333/voluntario/:id
Necessário informar o ID do voluntario na URI.
O ID será gerado automaticamente na hora da criação do voluntario
Passar o que deseja alterar no body. (os campos não são obrigatórios)
{ "name": "Alexandre", "email": "[email protected]", "telefone": "11999999999" }
- DESTROY: DELETE:
localhost:3333/voluntario/:id
Informe o ID do voluntario que deseja deletar na URI.
Apos a inicialização do servidor, é possível acessar a documentação com todas as rotas através da url localhost:3333/api-doc