@@ -26,10 +26,40 @@ export const httpExceptionPlugin = () =>
2626 return error . toBody ( ) ;
2727 }
2828
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+ }
3464 }
3565 } ) ;
0 commit comments