forked from euprogramo/meu-primeiro-projeto-back-end
-
Notifications
You must be signed in to change notification settings - Fork 0
/
mulheres.js
93 lines (74 loc) · 2.7 KB
/
mulheres.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
const express = require("express") //aqui estou iniciando o express
const router = express.Router() //aqui estou configurando a primeira parte da rota
const cors = require('cors') // aqui estou trazendo o pacote cors que permite consumir essa api no front-end
const conectaBancoDeDados = require('./bancoDeDados') //aqui estou ligando ao arquivo bancoDeDados
conectaBancoDeDados() // estou chamando a função que conecta o banco de dados
const Mulher = require('./mulherModel')
const app = express() //aqui estou iniciando o app
app.use(express.json())
app.use(cors())
const porta = 3333 //aqui estou criando a porta
//GET
async function mostraMulheres(request, response) {
try {
const mulheresVindasDoBancoDeDados = await Mulher.find()
response.json(mulheresVindasDoBancoDeDados)
}catch (erro) {
console.log(erro)
}
}
//POST
async function criaMulher(request, response) {
const novaMulher = new Mulher({
nome: request.body.nome,
imagem: request.body.imagem,
minibio: request.body.minibio,
citacao: request.body.citacao
})
try {
const mulherCriada = await novaMulher.save()
response.status(201).json(mulherCriada)
} catch (erro) {
console.log(erro)
}
}
//PATCH
async function corrigeMulher(request, response) {
try {
const mulherEncontrada = await Mulher.findById(request.params.id)
if (request.body.nome) {
mulherEncontrada.nome = request.body.nome
}
if (request.body.minibio) {
mulherEncontrada.minibio = request.body.minibio
}
if (request.body.imagem) {
mulherEncontrada = request.body.imagem
}
if (request.body.citacao) {
mulherEncontrada = request.body.citacao
}
const mulherAtualizadaNoBancoDeDados = await mulherEncontrada.save()
response.json(mulherAtualizadaNoBancoDeDados)
} catch (erro) {
console.log(erro)
}
}
//DELETE
async function deletaMulher(request, response) {
try {
await Mulher.findByIdAndDelete(request.params.id)
response.json({ messagem: 'Mulher deletada com sucesso!'})
} catch(erro) {
console.log(erro)
}
}
app.use(router.get('/mulheres', mostraMulheres)) //configurei rota GET /mulheres
app.use(router.post('/mulheres', criaMulher)) //configurei rota POST /mulheres
app.use(router.patch('/mulheres/:id', corrigeMulher)) // configurei rota PATCH /mulheres/:id
app.use(router.delete('/mulheres/:id', deletaMulher)) // configurei rota DELETE /mulheres/:id
//PORTA
function mostraPorta() {
console.log("Servidor criado e rodando na porta ", porta)
}
app.listen(porta, mostraPorta) //servidor ouvindo a porta