Skip to content

Commit d1658f2

Browse files
committed
fix smells tirando método deprecated Close #32, #31, #29
1 parent 37fa2c5 commit d1658f2

File tree

3 files changed

+24
-97
lines changed

3 files changed

+24
-97
lines changed

backend/src/app.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,22 @@
1+
import 'express-async-errors';
12
import express from 'express';
23
import cors from 'cors';
34
import routes from './routes';
5+
import { errorHandler } from './middleware/errorHandler';
46

57
class App {
68
public server: express.Application;
79

810
constructor() {
911
this.server = express();
10-
this.middlewares();
1112
this.routes();
13+
this.middlewares();
1214
}
1315

1416
private middlewares(): void {
1517
this.server.use(express.json());
1618
this.server.use(cors());
19+
this.server.use(errorHandler);
1720
}
1821

1922
private routes(): void {
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import { Request, Response, NextFunction } from 'express';
2+
import { z } from 'zod';
3+
4+
export function errorHandler(err: unknown, req: Request, res: Response, next: NextFunction) {
5+
// Verifica se o erro é do Zod
6+
if (err instanceof z.ZodError) {
7+
return res.status(400).json({
8+
message: 'Erro de validação',
9+
errors: err.flatten((issue) => issue.message).fieldErrors,
10+
});
11+
}
12+
13+
console.error(err);
14+
15+
// Retorna erro genérico para o usuário
16+
return res.status(500).json({
17+
message: 'Erro interno do servidor',
18+
});
19+
}

backend/src/routes.ts

Lines changed: 1 addition & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,34 @@
11
import express from 'express';
22
import requestController from './controller/requestController';
33
import authMiddleware from './middleware/auth';
4+
import 'express-async-errors';
45
import { z } from 'zod';
56

67
const routes = express.Router();
78

89
// Endpoint para CADASTRAR um novo usuário
910
routes.post('/api/register', async (request, response) => {
10-
try{
11-
1211
console.log("Recebendo requisição de cadastro:", request.body);
1312
const {user, token} = await requestController.createUser(request.body);
1413
return response.status(201).json({
1514
user,
1615
token,
1716
message: 'Usuário cadastrado com sucesso!'
1817
});
19-
20-
}catch(error){
21-
22-
if (error instanceof z.ZodError) {
23-
console.log("Enviando erro de validação 400 para o cliente...");
24-
return response.status(400).json({
25-
message: "Erro de validação",
26-
errors: error.flatten().fieldErrors
27-
});
28-
}
29-
30-
if(error instanceof Error){
31-
if (error.message.includes("já está em uso")) {
32-
console.log("Enviando erro de duplicidade 400...");
33-
return response.status(400).json({ message: error.message });
34-
}
35-
}
36-
37-
console.error("Erro interno no servidor:", error);
38-
return response.status(500).json({ message: "Erro interno no servidor." });
39-
}
4018
});
4119

4220
// Endpoint para verificar a existência de usuário
4321
routes.post('/api/login', async(request, response) => {
44-
try{
45-
4622
const { user, token } = await requestController.enterUser(request.body);
47-
// console.log('Login: ' + user, token);
4823
return response.status(200).json({
4924
user,
5025
token,
5126
message: 'Usuário autenticado com sucesso.'
5227
});
53-
54-
}catch(error){
55-
56-
if(error instanceof Error){
57-
if(error.message.includes("Usuário ou senha incorretos.")){
58-
console.log("Erro de username ou senha");
59-
return response.status(400).json({ message: error.message });
60-
}
61-
}
62-
63-
}
6428
});
6529

6630
// Endpoint para criar projeto
6731
routes.post('/api/user/newproject', authMiddleware, async(request, response) =>{
68-
try{
69-
7032
const projectData = request.body;
7133

7234
const creatorID = request.user.id;
@@ -77,66 +39,27 @@ routes.post('/api/user/newproject', authMiddleware, async(request, response) =>
7739
message: "Projeto criado com sucesso!",
7840
project: newProject
7941
});
80-
81-
}catch(error){
82-
83-
if (error instanceof z.ZodError) {
84-
return response.status(400).json({
85-
message: "Erro de validação",
86-
errors: error.flatten().fieldErrors
87-
});
88-
}
89-
90-
if(error instanceof Error){
91-
return response.status(400).json({ message: error.message });
92-
}
93-
94-
console.error("Erro interno no servidor:", error);
95-
return response.status(500).json({ message: "Erro interno no servidor." });
96-
97-
}
9842
});
9943

10044

10145
// Endpoint para enviar ao fronend os keywords disponíveis
10246
routes.get('/api/keywords', async(request, response) => {
103-
try{
104-
10547
const tags = await requestController.getKeywords();
10648

10749
return response.status(200).json(tags);
108-
109-
}catch(error){
110-
console.log(error);
111-
return response.status(500).json({ message: "Erro ao buscar as palavras-chave." });
112-
}
11350
})
11451

11552
// Endpoint para enviar ao frontend os projetos de determinado usuário
11653
routes.get('/api/user/projects', authMiddleware, async(request, response) => {
117-
try{
118-
11954
const creatorID = request.user.id;
12055
const projects = await requestController.getUserProjects(creatorID);
12156
return response.status(200).json({
12257
projects
12358
})
124-
125-
}catch(error){
126-
127-
if(error instanceof Error){
128-
return response.status(400).json({ message: error.message });
129-
}
130-
131-
console.error("Erro interno ao buscar projetos:", error);
132-
return response.status(500).json({ message: "Erro interno no servidor." });
133-
134-
}
13559
})
13660

13761
// Endpoint para atualizar um projeto existente
13862
routes.put('/api/user/updateproject/:projectId', authMiddleware, async(request, response) => {
139-
try{
14063
const { projectId } = request.params;
14164
const updatedData = request.body;
14265
const creatorID = request.user.id;
@@ -147,24 +70,6 @@ routes.put('/api/user/updateproject/:projectId', authMiddleware, async(request,
14770
message: "Projeto atualizado com sucesso!",
14871
project: updatedProject
14972
});
150-
151-
}catch(error){
152-
153-
if (error instanceof z.ZodError) {
154-
return response.status(400).json({
155-
message: "Erro de validação",
156-
errors: error.flatten().fieldErrors
157-
});
158-
}
159-
160-
if(error instanceof Error){
161-
return response.status(400).json({ message: error.message });
162-
}
163-
164-
console.error("Erro interno no servidor:", error);
165-
return response.status(500).json({ message: "Erro interno no servidor." });
166-
167-
}
16873
});
16974

17075
export default routes;

0 commit comments

Comments
 (0)