@@ -9,6 +9,30 @@ const fuseOptions = {
99 keys : [ "name.en" , "name.pt" ] , // Busca em ambos os idiomas
1010} ;
1111
12+ // Mensagens de erro localizadas
13+ const errorMessages = {
14+ invalidLang : {
15+ en : "Invalid language. Use 'en' or 'pt'." ,
16+ pt : "Idioma inválido. Use 'en' ou 'pt'." ,
17+ } ,
18+ missingQuery : {
19+ en : "Please provide a search term." ,
20+ pt : "Por favor, insira um termo de pesquisa." ,
21+ } ,
22+ noResults : {
23+ en : "Exercise not found." ,
24+ pt : "Exercício não encontrado." ,
25+ } ,
26+ fetchError : {
27+ en : "Error fetching exercises." ,
28+ pt : "Erro ao buscar os exercícios." ,
29+ } ,
30+ searchError : {
31+ en : "Error searching exercises." ,
32+ pt : "Erro ao buscar exercícios." ,
33+ } ,
34+ } ;
35+
1236// Rota para obter exercícios paginados em um idioma específico
1337router . get ( "/" , async ( req , res ) => {
1438 try {
@@ -17,7 +41,9 @@ router.get("/", async (req, res) => {
1741 const lang = req . query . lang || "en" ; // Idioma padrão é inglês
1842
1943 if ( ! [ "en" , "pt" ] . includes ( lang ) ) {
20- return res . status ( 400 ) . json ( { message : "Idioma inválido. Use 'en' ou 'pt'." } ) ;
44+ return res
45+ . status ( 400 )
46+ . json ( { message : errorMessages . invalidLang [ lang ] || errorMessages . invalidLang . en } ) ;
2147 }
2248
2349 const exercises = await Exercise . find ( )
@@ -43,8 +69,15 @@ router.get("/", async (req, res) => {
4369
4470 res . json ( formattedExercises ) ;
4571 } catch ( err ) {
46- console . error ( "Erro ao buscar exercícios:" , err ) ;
47- res . status ( 500 ) . json ( { message : "Erro ao buscar os exercícios" , error : err . message } ) ;
72+ console . error (
73+ lang === "pt"
74+ ? `${ errorMessages . fetchError . pt } : ${ err . message } `
75+ : `${ errorMessages . fetchError . en } : ${ err . message } `
76+ ) ;
77+ res . status ( 500 ) . json ( {
78+ message : errorMessages . fetchError [ lang ] || errorMessages . fetchError . en ,
79+ error : err . message ,
80+ } ) ;
4881 }
4982} ) ;
5083
@@ -53,11 +86,15 @@ router.get("/search", async (req, res) => {
5386 const { query, lang = "en" } = req . query ;
5487
5588 if ( ! [ "en" , "pt" ] . includes ( lang ) ) {
56- return res . status ( 400 ) . json ( { message : "Idioma inválido. Use 'en' ou 'pt'." } ) ;
89+ return res
90+ . status ( 400 )
91+ . json ( { message : errorMessages . invalidLang [ lang ] || errorMessages . invalidLang . en } ) ;
5792 }
5893
5994 if ( ! query ) {
60- return res . status ( 400 ) . json ( { message : "Por favor, insira um termo de pesquisa" } ) ;
95+ return res
96+ . status ( 400 )
97+ . json ( { message : errorMessages . missingQuery [ lang ] || errorMessages . missingQuery . en } ) ;
6198 }
6299
63100 try {
@@ -91,16 +128,24 @@ router.get("/search", async (req, res) => {
91128 id : exercise . id ,
92129 } ;
93130 } ) ;
94-
95- res . json ( formattedExercises ) ;
96131
132+ // Se nenhum exercício foi encontrado
97133 if ( matchedExercises . length === 0 ) {
98- return res . json ( { message : "Exercício não encontrado." } ) ;
134+ return res . json ( { message : errorMessages . noResults [ lang ] || errorMessages . noResults . en } ) ;
99135 }
100136
101- res . json ( { message : "Exercícios encontrados:" , exercises : matchedExercises } ) ;
137+ // Retornar os exercícios encontrados
138+ res . json ( { message : "Exercises found:" , exercises : matchedExercises } ) ;
102139 } catch ( err ) {
103- res . status ( 500 ) . json ( { message : "Erro ao buscar exercícios" , error : err . message } ) ;
140+ console . error (
141+ lang === "pt"
142+ ? `${ errorMessages . searchError . pt } : ${ err . message } `
143+ : `${ errorMessages . searchError . en } : ${ err . message } `
144+ ) ;
145+ res . status ( 500 ) . json ( {
146+ message : errorMessages . searchError [ lang ] || errorMessages . searchError . en ,
147+ error : err . message ,
148+ } ) ;
104149 }
105150} ) ;
106151
0 commit comments