-
Notifications
You must be signed in to change notification settings - Fork 2
/
app.js
112 lines (87 loc) · 2.92 KB
/
app.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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
const express = require('express');
const app = express();
const cookieParser = require('cookie-parser');
const port = 3000;
app.use(express.json());
app.use(express.static('public'));
app.use(cookieParser());
let database = [
{
id: "1",
razaoSocial: "dev",
email: "[email protected]",
cnpj: "00000000000000",
telefone: "(21) 968886093",
senha: "dev@123456"
},
];
// Rota para obter todos os usuários (apenas para exemplo)
app.get('/users', (request, response) => {
response.json(database);
});
// Rota para obter um usuário pelo ID
app.get('/users/:id', (request, response) => {
const userId = request.params.id;
const user = database.find(user => user.id === userId);
if (!user) {
return response.status(404).json({ error: 'Usuário não encontrado' });
}
response.json(user);
});
// Rota para cadastrar um novo usuário
app.post("/users", (request, response) => {
const body = request.body;
const existingUser = database.find(user => user.email === body.email);
if (existingUser) {
return response.status(400).json({ error: 'Esta conta já foi cadastrada' });
}
const newUser = {
id: (database.length + 1).toString(),
razaoSocial: body.razaoSocial,
email: body.email,
cnpj: body.cnpj,
telefone: body.telefone,
senha: body.senha
};
database.push(newUser);
response.json({ message: 'Cadastro sucedido!', user: newUser });
});
// Rota para fazer login
app.post('/login', (req, res) => {
const { email, senha } = req.body;
const user = database.find(user => user.email === email && user.senha === senha);
if (!user) {
return res.status(401).json({ error: 'Credenciais inválidas' });
}
res.cookie('loggedIn', 'true', { httpOnly: true });
res.json({ message: 'Login bem-sucedido!', user });
});
// Rota para fazer logout
app.get('/logout', (req, res) => {
res.clearCookie('loggedIn');
res.redirect('/');
});
// Rota para atualizar um usuário pelo ID usando o método PATCH
app.patch('/users/:id', (request, response) => {
const userId = request.params.id;
const body = request.body;
let userIndex = database.findIndex(user => user.id === userId);
if (userIndex === -1) {
return response.status(404).json({ error: 'Usuário não encontrado' });
}
database[userIndex] = { ...database[userIndex], ...body };
response.json({ message: 'Informações do usuário atualizadas com sucesso', user: database[userIndex] });
});
// Rota para deletar um usuário pelo ID
app.delete('/users/:id', (request, response) => {
const userId = request.params.id;
const userIndex = database.findIndex(user => user.id === userId);
if (userIndex === -1) {
return response.status(404).json({ error: 'Usuário não encontrado' });
}
const deletedUser = database.splice(userIndex, 1);
response.json({ message: 'Usuário deletado com sucesso', deletedUser });
});
app.listen(port, () => {
console.log(`Server is running on port ${port}`);
});