Skip to content

Commit

Permalink
refactor: using ApiErrorArrayHandler in controllers
Browse files Browse the repository at this point in the history
  • Loading branch information
Chinlinlee committed Nov 11, 2023
1 parent e889b0c commit edbf7a6
Show file tree
Hide file tree
Showing 9 changed files with 52 additions and 164 deletions.
13 changes: 3 additions & 10 deletions api/WADO-URI/controller/retrieveInstance.js
Original file line number Diff line number Diff line change
@@ -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) {
Expand All @@ -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();
}

}
Expand Down
26 changes: 6 additions & 20 deletions api/dicom-web/controller/UPS-RS/cancel.js
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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();
}
}
}
Expand Down
26 changes: 6 additions & 20 deletions api/dicom-web/controller/UPS-RS/change-workItem-state.js
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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();
}
}
}
Expand Down
28 changes: 7 additions & 21 deletions api/dicom-web/controller/UPS-RS/create-workItems.js
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}
}
}
Expand Down
19 changes: 6 additions & 13 deletions api/dicom-web/controller/UPS-RS/get-workItem.js
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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();
}
}
}
Expand Down
26 changes: 6 additions & 20 deletions api/dicom-web/controller/UPS-RS/subscribe.js
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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();
}
}
}
Expand Down
26 changes: 6 additions & 20 deletions api/dicom-web/controller/UPS-RS/suspend-subscription.js
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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();
}
}
}
Expand Down
26 changes: 6 additions & 20 deletions api/dicom-web/controller/UPS-RS/unsubscribe.js
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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();
}
}
}
Expand Down
Loading

0 comments on commit edbf7a6

Please sign in to comment.