diff --git a/api/WADO-URI/controller/retrieveInstance.js b/api/WADO-URI/controller/retrieveInstance.js index 806168e8..efb12700 100644 --- a/api/WADO-URI/controller/retrieveInstance.js +++ b/api/WADO-URI/controller/retrieveInstance.js @@ -1,6 +1,7 @@ const { WadoUriService, NotFoundInstanceError } = require("../service/WADO-URI.service"); const { Controller } = require("../../controller.class"); const { ApiLogger } = require("../../../utils/logs/api-logger"); +const { ApiErrorArrayHandler } = require("@error/api-errors.handler"); class RetrieveSingleInstanceController extends Controller { constructor(req, res) { @@ -27,16 +28,8 @@ class RetrieveSingleInstanceController extends Controller { } } catch(e) { - let errorStr = JSON.stringify(e, Object.getOwnPropertyNames(e)); - this.logger.error(errorStr); - - this.response.writeHead(500, { - "Content-Type": "application/dicom+json" - }); - this.response.end(JSON.stringify({ - code: 500, - message: errorStr - })); + let apiErrorArrayHandler = new ApiErrorArrayHandler(this.response, this.logger, e); + return apiErrorArrayHandler.doErrorResponse(); } } diff --git a/api/dicom-web/controller/UPS-RS/cancel.js b/api/dicom-web/controller/UPS-RS/cancel.js index a58ac60c..d8a6bbc4 100644 --- a/api/dicom-web/controller/UPS-RS/cancel.js +++ b/api/dicom-web/controller/UPS-RS/cancel.js @@ -10,17 +10,18 @@ const { const { ApiLogger } = require("../../../../utils/logs/api-logger"); const { Controller } = require("../../../controller.class"); const { DicomWebServiceError } = require("@error/dicom-web-service"); +const { ApiErrorArrayHandler } = require("@error/api-errors.handler"); class CancelWorkItemController extends Controller { constructor(req, res) { super(req, res); + this.apiLogger = new ApiLogger(this.request, "UPS-RS"); } async mainProcess() { - let apiLogger = new ApiLogger(this.request, "UPS-RS"); - apiLogger.addTokenValue(); - apiLogger.logger.info(`Cancel Work Item, params: ${this.paramsToString()}`); + this.apiLogger.addTokenValue(); + this.apiLogger.logger.info(`Cancel Work Item, params: ${this.paramsToString()}`); try { let service = new CancelWorkItemService(this.request, this.response); @@ -31,23 +32,8 @@ class CancelWorkItemController extends Controller { .status(202) .end(); } catch (e) { - let errorStr = JSON.stringify(e, Object.getOwnPropertyNames(e)); - apiLogger.logger.error(errorStr); - - if (e instanceof DicomWebServiceError) { - return this.response.status(e.code).json({ - status: e.status, - message: e.message - }); - } - - this.response.writeHead(500, { - "Content-Type": "application/dicom+json" - }); - this.response.end(JSON.stringify({ - code: 500, - message: "An Server Exception Occurred" - })); + let apiErrorArrayHandler = new ApiErrorArrayHandler(this.response, this.apiLogger, e); + return apiErrorArrayHandler.doErrorResponse(); } } } diff --git a/api/dicom-web/controller/UPS-RS/change-workItem-state.js b/api/dicom-web/controller/UPS-RS/change-workItem-state.js index 17c14915..05593e71 100644 --- a/api/dicom-web/controller/UPS-RS/change-workItem-state.js +++ b/api/dicom-web/controller/UPS-RS/change-workItem-state.js @@ -4,17 +4,18 @@ const { const { ApiLogger } = require("../../../../utils/logs/api-logger"); const { Controller } = require("../../../controller.class"); const { DicomWebServiceError } = require("@error/dicom-web-service"); +const { ApiErrorArrayHandler } = require("@error/api-errors.handler"); class ChangeWorkItemStateController extends Controller { constructor(req, res) { super(req, res); + this.apiLogger = new ApiLogger(this.request, "UPS-RS"); } async mainProcess() { - let apiLogger = new ApiLogger(this.request, "UPS-RS"); - apiLogger.addTokenValue(); - apiLogger.logger.info(`Update workItem, params: ${this.paramsToString()}`); + this.apiLogger.addTokenValue(); + this.apiLogger.logger.info(`Update workItem, params: ${this.paramsToString()}`); try { let service = new ChangeWorkItemStateService(this.request, this.response); @@ -24,23 +25,8 @@ class ChangeWorkItemStateController extends Controller { .status(200) .end(); } catch (e) { - let errorStr = JSON.stringify(e, Object.getOwnPropertyNames(e)); - apiLogger.logger.error(errorStr); - - if (e instanceof DicomWebServiceError) { - return this.response.status(e.code).json({ - status: e.status, - message: e.message - }); - } - - this.response.writeHead(500, { - "Content-Type": "application/dicom+json" - }); - this.response.end(JSON.stringify({ - code: 500, - message: "An Server Exception Occurred" - })); + let apiErrorArrayHandler = new ApiErrorArrayHandler(this.response, this.apiLogger, e); + return apiErrorArrayHandler.doErrorResponse(); } } } diff --git a/api/dicom-web/controller/UPS-RS/create-workItems.js b/api/dicom-web/controller/UPS-RS/create-workItems.js index 41091426..e99a3f3c 100644 --- a/api/dicom-web/controller/UPS-RS/create-workItems.js +++ b/api/dicom-web/controller/UPS-RS/create-workItems.js @@ -5,41 +5,27 @@ const { const { ApiLogger } = require("../../../../utils/logs/api-logger"); const { Controller } = require("../../../controller.class"); const { DicomWebServiceError } = require("@error/dicom-web-service"); +const { ApiErrorArrayHandler } = require("@error/api-errors.handler"); class CreateWorkItemController extends Controller { constructor(req, res) { super(req, res); + this.apiLogger = new ApiLogger(this.request, "UPS-RS"); } async mainProcess() { - let apiLogger = new ApiLogger(this.request, "UPS-RS"); - apiLogger.addTokenValue(); - apiLogger.logger.info("Create workItem"); + this.apiLogger.addTokenValue(); + this.apiLogger.logger.info("Create workItem"); try { let workItemService = new CreateWorkItemService(this.request, this.response); let workItem = await workItemService.createUps(); - apiLogger.logger.info(`Create workItem ${workItem.upsInstanceUID} successful`); + this.apiLogger.logger.info(`Create workItem ${workItem.upsInstanceUID} successful`); return this.response.status(201).send(); } catch (e) { - let errorStr = JSON.stringify(e, Object.getOwnPropertyNames(e)); - apiLogger.logger.error(errorStr); - - if (e instanceof DicomWebServiceError) { - return this.response.status(e.code).send({ - status: e.status, - message: e.message - }); - } - - this.response.writeHead(500, { - "Content-Type": "application/dicom+json" - }); - this.response.end(JSON.stringify({ - code: 500, - message: "An Server Exception Occurred" - })); + let apiErrorArrayHandler = new ApiErrorArrayHandler(this.response, this.apiLogger, e); + return apiErrorArrayHandler.doErrorResponse(); } } } diff --git a/api/dicom-web/controller/UPS-RS/get-workItem.js b/api/dicom-web/controller/UPS-RS/get-workItem.js index 1ef3ead6..17e66fde 100644 --- a/api/dicom-web/controller/UPS-RS/get-workItem.js +++ b/api/dicom-web/controller/UPS-RS/get-workItem.js @@ -4,17 +4,18 @@ const { } = require("./service/get-workItem.service"); const { ApiLogger } = require("../../../../utils/logs/api-logger"); const { Controller } = require("../../../controller.class"); +const { ApiErrorArrayHandler } = require("@error/api-errors.handler"); class GetWorkItemController extends Controller { constructor(req, res) { super(req, res); + this.apiLogger = new ApiLogger(this.request, "UPS-RS"); } async mainProcess() { - let apiLogger = new ApiLogger(this.request, "UPS-RS"); - apiLogger.addTokenValue(); - apiLogger.logger.info(`Get workItem, query: ${this.queryToString()}, param: ${this.paramsToString()}`); + this.apiLogger.addTokenValue(); + this.apiLogger.logger.info(`Get workItem, query: ${this.queryToString()}, param: ${this.paramsToString()}`); try { let getWorkItemService = new GetWorkItemService(this.request, this.response); @@ -28,16 +29,8 @@ class GetWorkItemController extends Controller { return this.response.set("Content-Type", "application/dicom+json").status(200).json(workItems); } catch (e) { - let errorStr = JSON.stringify(e, Object.getOwnPropertyNames(e)); - apiLogger.logger.error(errorStr); - - this.response.writeHead(500, { - "Content-Type": "application/dicom+json" - }); - this.response.end(JSON.stringify({ - code: 500, - message: errorStr - })); + let apiErrorArrayHandler = new ApiErrorArrayHandler(this.response, this.apiLogger, e); + return apiErrorArrayHandler.doErrorResponse(); } } } diff --git a/api/dicom-web/controller/UPS-RS/subscribe.js b/api/dicom-web/controller/UPS-RS/subscribe.js index 33b20a46..4ad936c1 100644 --- a/api/dicom-web/controller/UPS-RS/subscribe.js +++ b/api/dicom-web/controller/UPS-RS/subscribe.js @@ -4,17 +4,18 @@ const { const { ApiLogger } = require("../../../../utils/logs/api-logger"); const { Controller } = require("../../../controller.class"); const { DicomWebServiceError } = require("@error/dicom-web-service"); +const { ApiErrorArrayHandler } = require("@error/api-errors.handler"); class SubscribeWorkItemController extends Controller { constructor(req, res) { super(req, res); + this.apiLogger = new ApiLogger(this.request, "UPS-RS"); } async mainProcess() { - let apiLogger = new ApiLogger(this.request, "UPS-RS"); - apiLogger.addTokenValue(); - apiLogger.logger.info(`Create Subscription, params: ${this.paramsToString()}`); + this.apiLogger.addTokenValue(); + this.apiLogger.logger.info(`Create Subscription, params: ${this.paramsToString()}`); try { let service = new SubscribeService(this.request, this.response); @@ -25,23 +26,8 @@ class SubscribeWorkItemController extends Controller { .status(201) .end(); } catch (e) { - let errorStr = JSON.stringify(e, Object.getOwnPropertyNames(e)); - apiLogger.logger.error(errorStr); - - if (e instanceof DicomWebServiceError) { - return this.response.status(e.code).json({ - status: e.status, - message: e.message - }); - } - - this.response.writeHead(500, { - "Content-Type": "application/dicom+json" - }); - this.response.end(JSON.stringify({ - code: 500, - message: "An Server Exception Occurred" - })); + let apiErrorArrayHandler = new ApiErrorArrayHandler(this.response, this.apiLogger, e); + return apiErrorArrayHandler.doErrorResponse(); } } } diff --git a/api/dicom-web/controller/UPS-RS/suspend-subscription.js b/api/dicom-web/controller/UPS-RS/suspend-subscription.js index 0115b810..8161f525 100644 --- a/api/dicom-web/controller/UPS-RS/suspend-subscription.js +++ b/api/dicom-web/controller/UPS-RS/suspend-subscription.js @@ -10,17 +10,18 @@ const { const { ApiLogger } = require("../../../../utils/logs/api-logger"); const { Controller } = require("../../../controller.class"); const { DicomWebServiceError } = require("@error/dicom-web-service"); +const { ApiErrorArrayHandler } = require("@error/api-errors.handler"); class SuspendSubscribeWorkItemController extends Controller { constructor(req, res) { super(req, res); + this.apiLogger = new ApiLogger(this.request, "UPS-RS"); } async mainProcess() { - let apiLogger = new ApiLogger(this.request, "UPS-RS"); - apiLogger.addTokenValue(); - apiLogger.logger.info(`Suspend Subscription, params: ${this.paramsToString()}`); + this.apiLogger.addTokenValue(); + this.apiLogger.logger.info(`Suspend Subscription, params: ${this.paramsToString()}`); try { let service = new SuspendSubscribeService(this.request, this.response); @@ -31,23 +32,8 @@ class SuspendSubscribeWorkItemController extends Controller { .status(200) .end(); } catch (e) { - let errorStr = JSON.stringify(e, Object.getOwnPropertyNames(e)); - apiLogger.logger.error(errorStr); - - if (e instanceof DicomWebServiceError) { - return this.response.status(e.code).json({ - status: e.status, - message: e.message - }); - } - - this.response.writeHead(500, { - "Content-Type": "application/dicom+json" - }); - this.response.end(JSON.stringify({ - code: 500, - message: "An Server Exception Occurred" - })); + let apiErrorArrayHandler = new ApiErrorArrayHandler(this.response, this.apiLogger, e); + return apiErrorArrayHandler.doErrorResponse(); } } } diff --git a/api/dicom-web/controller/UPS-RS/unsubscribe.js b/api/dicom-web/controller/UPS-RS/unsubscribe.js index 2fae701d..e2cf36be 100644 --- a/api/dicom-web/controller/UPS-RS/unsubscribe.js +++ b/api/dicom-web/controller/UPS-RS/unsubscribe.js @@ -4,17 +4,18 @@ const { const { ApiLogger } = require("../../../../utils/logs/api-logger"); const { Controller } = require("../../../controller.class"); const { DicomWebServiceError } = require("@error/dicom-web-service"); +const { ApiErrorArrayHandler } = require("@error/api-errors.handler"); class UnSubscribeWorkItemController extends Controller { constructor(req, res) { super(req, res); + this.apiLogger = new ApiLogger(this.request, "UPS-RS"); } async mainProcess() { - let apiLogger = new ApiLogger(this.request, "UPS-RS"); - apiLogger.addTokenValue(); - apiLogger.logger.info(`UnSubscription, params: ${this.paramsToString()}`); + this.apiLogger.addTokenValue(); + this.apiLogger.logger.info(`UnSubscription, params: ${this.paramsToString()}`); try { let service = new UnSubscribeService(this.request, this.response); @@ -25,23 +26,8 @@ class UnSubscribeWorkItemController extends Controller { .status(200) .end(); } catch (e) { - let errorStr = JSON.stringify(e, Object.getOwnPropertyNames(e)); - apiLogger.logger.error(errorStr); - - if (e instanceof DicomWebServiceError) { - return this.response.status(e.code).json({ - status: e.status, - message: e.message - }); - } - - this.response.writeHead(500, { - "Content-Type": "application/dicom+json" - }); - this.response.end(JSON.stringify({ - code: 500, - message: "An Server Exception Occurred" - })); + let apiErrorArrayHandler = new ApiErrorArrayHandler(this.response, this.apiLogger, e); + return apiErrorArrayHandler.doErrorResponse(); } } } diff --git a/api/dicom-web/controller/UPS-RS/update-workItem.js b/api/dicom-web/controller/UPS-RS/update-workItem.js index 466636d6..f1c77d2b 100644 --- a/api/dicom-web/controller/UPS-RS/update-workItem.js +++ b/api/dicom-web/controller/UPS-RS/update-workItem.js @@ -4,17 +4,18 @@ const { const { ApiLogger } = require("../../../../utils/logs/api-logger"); const { Controller } = require("../../../controller.class"); const { DicomWebServiceError } = require("@error/dicom-web-service"); +const { ApiErrorArrayHandler } = require("@error/api-errors.handler"); class UpdateWorkItemController extends Controller { constructor(req, res) { super(req, res); + this.apiLogger = new ApiLogger(this.request, "UPS-RS"); } async mainProcess() { - let apiLogger = new ApiLogger(this.request, "UPS-RS"); - apiLogger.addTokenValue(); - apiLogger.logger.info(`Update workItem, params: ${this.paramsToString()}`); + this.apiLogger.addTokenValue(); + this.apiLogger.logger.info(`Update workItem, params: ${this.paramsToString()}`); try { let service = new UpdateWorkItemService(this.request, this.response); @@ -25,23 +26,8 @@ class UpdateWorkItemController extends Controller { .status(200) .end(); } catch (e) { - let errorStr = JSON.stringify(e, Object.getOwnPropertyNames(e)); - apiLogger.logger.error(errorStr); - - if (e instanceof DicomWebServiceError) { - return this.response.status(e.code).json({ - status: e.status, - message: e.message - }); - } - - this.response.writeHead(500, { - "Content-Type": "application/dicom+json" - }); - this.response.end(JSON.stringify({ - code: 500, - message: "An Server Exception Occurred" - })); + let apiErrorArrayHandler = new ApiErrorArrayHandler(this.response, this.apiLogger, e); + return apiErrorArrayHandler.doErrorResponse(); } } }