11import express from 'express' ;
22import requestController from './controller/requestController' ;
33import authMiddleware from './middleware/auth' ;
4+ import 'express-async-errors' ;
45import { z } from 'zod' ;
56
67const routes = express . Router ( ) ;
78
89// Endpoint para CADASTRAR um novo usuário
910routes . 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
4321routes . 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
6731routes . 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
10246routes . 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
11653routes . 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
13862routes . 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
17075export default routes ;
0 commit comments