@@ -10,6 +10,7 @@ import type {
10
10
IGetQuestionPayload ,
11
11
IGetRandomQuestionPayload ,
12
12
} from '@/services/get/types' ;
13
+ import { StatusCodes } from 'http-status-codes' ;
13
14
14
15
export const getQuestions = async ( req : Request , res : Response ) : Promise < Response > => {
15
16
const payload : IGetQuestionsPayload = {
@@ -22,9 +23,16 @@ export const getQuestions = async (req: Request, res: Response): Promise<Respons
22
23
23
24
try {
24
25
const result = await getQuestionsService ( payload ) ;
25
- return res . status ( result . code ) . json ( result ) ;
26
+ if ( ! result . data || result . code < 400 ) {
27
+ return res . status ( result . code ) . json ( {
28
+ message : result . error ?. message ?? 'An error occurred' ,
29
+ } ) ;
30
+ }
31
+ return res . status ( result . code ) . json ( result . data ) ;
26
32
} catch ( error ) {
27
- return res . status ( 500 ) . json ( { success : false , message : 'An error occurred' , error } ) ;
33
+ return res
34
+ . status ( StatusCodes . INTERNAL_SERVER_ERROR )
35
+ . json ( { success : false , message : 'An error occurred' , error } ) ;
28
36
}
29
37
} ;
30
38
@@ -35,9 +43,16 @@ export const getQuestionDetails = async (req: Request, res: Response): Promise<R
35
43
36
44
try {
37
45
const result = await getQuestionDetailsService ( payload ) ;
38
- return res . status ( result . code ) . json ( result ) ;
46
+ if ( ! result . data || result . code < 400 ) {
47
+ return res . status ( result . code ) . json ( {
48
+ message : result . error ?. message ?? 'An error occurred' ,
49
+ } ) ;
50
+ }
51
+ return res . status ( result . code ) . json ( result . data ) ;
39
52
} catch ( error ) {
40
- return res . status ( 500 ) . json ( { success : false , message : 'An error occurred' , error } ) ;
53
+ return res
54
+ . status ( StatusCodes . INTERNAL_SERVER_ERROR )
55
+ . json ( { success : false , message : 'An error occurred' , error } ) ;
41
56
}
42
57
} ;
43
58
@@ -51,7 +66,9 @@ export const getRandomQuestion = async (req: Request, res: Response): Promise<Re
51
66
const result = await getRandomQuestionService ( payload ) ;
52
67
return res . status ( result . code ) . json ( result ) ;
53
68
} catch ( error ) {
54
- return res . status ( 500 ) . json ( { success : false , message : 'An error occurred' , error } ) ;
69
+ return res
70
+ . status ( StatusCodes . INTERNAL_SERVER_ERROR )
71
+ . json ( { success : false , message : 'An error occurred' , error } ) ;
55
72
}
56
73
} ;
57
74
@@ -61,13 +78,17 @@ export const searchQuestionsByTitle = async (req: Request, res: Response): Promi
61
78
const limit = parseInt ( req . query . limit as string ) || 10 ;
62
79
63
80
if ( ! title ) {
64
- return res . status ( 400 ) . json ( { success : false , message : 'Title is required' } ) ;
81
+ return res
82
+ . status ( StatusCodes . UNPROCESSABLE_ENTITY )
83
+ . json ( { success : false , message : 'Title is required' } ) ;
65
84
}
66
85
67
86
try {
68
87
const result = await searchQuestionsByTitleService ( title . toString ( ) , page , limit ) ;
69
88
return res . status ( result . code ) . json ( result ) ;
70
89
} catch ( error ) {
71
- return res . status ( 500 ) . json ( { success : false , message : 'An error occurred' , error } ) ;
90
+ return res
91
+ . status ( StatusCodes . INTERNAL_SERVER_ERROR )
92
+ . json ( { success : false , message : 'An error occurred' , error } ) ;
72
93
}
73
94
} ;
0 commit comments