@@ -26,10 +26,40 @@ export const httpExceptionPlugin = () =>
26
26
return error . toBody ( ) ;
27
27
}
28
28
29
- if ( code === 'NOT_FOUND' ) {
30
- const { code : httpCode , statusCode, message } = JSON . parse ( HttpError . NOT_FOUND ) ;
31
- set . headers [ 'content-type' ] = 'application/json; charset=utf-8' ;
32
- set . status = parseInt ( httpCode , 10 ) ;
33
- return { statusCode, message } ;
29
+ set . headers [ 'content-type' ] = 'application/json; charset=utf-8' ;
30
+
31
+ switch ( code ) {
32
+ case 'INVALID_COOKIE_SIGNATURE' : {
33
+ const { code : httpCode , statusCode } = JSON . parse ( HttpError . BAD_REQUEST ) ;
34
+ const message = 'Invalid cookie signature' ;
35
+ set . status = parseInt ( httpCode , 10 ) ;
36
+ return { statusCode, message } ;
37
+ }
38
+
39
+ case 'VALIDATION' :
40
+ case 'PARSE' : {
41
+ const { code : httpCode , statusCode, message } = JSON . parse ( HttpError . BAD_REQUEST ) ;
42
+ set . status = parseInt ( httpCode , 10 ) ;
43
+ return { statusCode, message } ;
44
+ }
45
+
46
+ case 'NOT_FOUND' : {
47
+ const { code : httpCode , statusCode, message } = JSON . parse ( HttpError . NOT_FOUND ) ;
48
+ set . status = parseInt ( httpCode , 10 ) ;
49
+ return { statusCode, message } ;
50
+ }
51
+
52
+ case 'INVALID_FILE_TYPE' : {
53
+ const { code : httpCode , statusCode } = JSON . parse ( HttpError . UNSUPPORTED_MEDIA_TYPE ) ;
54
+ const message = 'Invalid file type' ;
55
+ set . status = parseInt ( httpCode , 10 ) ;
56
+ return { statusCode, message } ;
57
+ }
58
+
59
+ default : {
60
+ const message = error instanceof Error ? error . message : 'Internal server error' ;
61
+ set . status = 500 ;
62
+ return { statusCode : 500 , message } ;
63
+ }
34
64
}
35
65
} ) ;
0 commit comments