@ai-ecom/medusa-plugin-patient-record
Version:
A plugin for patient record
74 lines (73 loc) • 2.45 kB
JavaScript
;
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.
*/