UNPKG

@ai-ecom/medusa-plugin-patient-record

Version:

A plugin for patient record

74 lines (73 loc) 2.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _medusaCoreUtils = require("medusa-core-utils"); var QUERY_RUNNER_RELEASED = "QueryRunnerAlreadyReleasedError"; var TRANSACTION_STARTED = "TransactionAlreadyStartedError"; var TRANSACTION_NOT_STARTED = "TransactionNotStartedError"; var API_ERROR = "api_error"; var INVALID_REQUEST_ERROR = "invalid_request_error"; var INVALID_STATE_ERROR = "invalid_state_error"; var _default = exports["default"] = function _default() { return function (err, req, res, next) { var errorType = err.type || err.name; console.log(">> MPPR Error", err.message); var errObj = { code: err.code, type: err.type, message: err.message }; var statusCode = 500; switch (errorType) { case QUERY_RUNNER_RELEASED: case TRANSACTION_STARTED: case TRANSACTION_NOT_STARTED: case _medusaCoreUtils.MedusaError.Types.CONFLICT: statusCode = 409; errObj.code = INVALID_STATE_ERROR; errObj.message = "The request conflicted with another request. You may retry the request with the provided Idempotency-Key."; break; case _medusaCoreUtils.MedusaError.Types.DUPLICATE_ERROR: statusCode = 422; errObj.code = INVALID_REQUEST_ERROR; break; case _medusaCoreUtils.MedusaError.Types.NOT_ALLOWED: case _medusaCoreUtils.MedusaError.Types.INVALID_DATA: statusCode = 400; break; case _medusaCoreUtils.MedusaError.Types.NOT_FOUND: statusCode = 404; break; case _medusaCoreUtils.MedusaError.Types.DB_ERROR: statusCode = 500; errObj.code = API_ERROR; break; case _medusaCoreUtils.MedusaError.Types.UNEXPECTED_STATE: case _medusaCoreUtils.MedusaError.Types.INVALID_ARGUMENT: break; default: errObj.code = "unknown_error"; errObj.message = "An unknown error occurred."; errObj.type = "unknown_error"; break; } res.status(statusCode).json(errObj); }; }; /** * @schema error * title: "Response Error" * x-resourceId: error * properties: * code: * type: string * description: A slug code to indicate the type of the error. * message: * type: string * description: Description of the error that occurred. * type: * type: string * description: A slug indicating the type of the error. */