diff --git a/pusher/src/Controller/AuthenticateController.ts b/pusher/src/Controller/AuthenticateController.ts index bf68768d..f82974b6 100644 --- a/pusher/src/Controller/AuthenticateController.ts +++ b/pusher/src/Controller/AuthenticateController.ts @@ -60,10 +60,7 @@ export class AuthenticateController extends BaseController { })); } catch (e) { - console.error("An error happened", e) - res.writeStatus(e.status || "500 Internal Server Error"); - this.addCorsHeaders(res); - res.end('An error happened'); + this.errorToResponse(e, res); } diff --git a/pusher/src/Controller/BaseController.ts b/pusher/src/Controller/BaseController.ts index 0b744082..2096496d 100644 --- a/pusher/src/Controller/BaseController.ts +++ b/pusher/src/Controller/BaseController.ts @@ -8,4 +8,20 @@ export class BaseController { res.writeHeader('access-control-allow-methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE'); res.writeHeader('access-control-allow-origin', '*'); } + + /** + * Turns any exception into a HTTP response (and logs the error) + */ + protected errorToResponse(e: any, res: HttpResponse): void { + console.error("An error happened", e); + if (e.response) { + res.writeStatus(e.response.status+" "+e.response.statusText); + this.addCorsHeaders(res); + res.end("An error occurred: "+e.response.status+" "+e.response.statusText); + } else { + res.writeStatus("500 Internal Server Error") + this.addCorsHeaders(res); + res.end("An error occurred"); + } + } } diff --git a/pusher/src/Controller/MapController.ts b/pusher/src/Controller/MapController.ts index 5ad7bc8e..1ce04265 100644 --- a/pusher/src/Controller/MapController.ts +++ b/pusher/src/Controller/MapController.ts @@ -59,15 +59,7 @@ export class MapController extends BaseController{ this.addCorsHeaders(res); res.end(JSON.stringify(mapDetails)); } catch (e) { - if (e.response) { - res.writeStatus(e.response.status+" "+e.response.statusText); - this.addCorsHeaders(res); - res.end("An error occurred: "+e.response.status+" "+e.response.statusText); - } else { - res.writeStatus("500 Internal Server Error") - this.addCorsHeaders(res); - res.end("An error occurred"); - } + this.errorToResponse(e, res); } })();