@m92/express-utils
Version:
Utility Module for Express Framework
100 lines (78 loc) • 2.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _autoBind = _interopRequireDefault(require("auto-bind"));
var _ResponseBody = _interopRequireDefault(require("../helpers/ResponseBody"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
class ResHandler {
constructor(CONFIG, CONSTANTS, expressUtils) {
var {
logger
} = expressUtils;
this.CONFIG = CONFIG;
this.CONSTANTS = CONSTANTS;
this.logger = logger;
(0, _autoBind.default)(this);
}
setHeaders(request, response, next) {
this._exposeHeaders(response);
this._setCustomHeaders(response);
return process.nextTick(next);
}
handleResponse(request, response, next) {
var resBody = response.encryptedBody || response.body || {};
var {
statusCode
} = resBody;
var handler = [301, 302].indexOf(statusCode) > -1 ? this._redirectResponse : this._sendResponse;
handler(request, response, next);
} // --------- Set Response Headers ----------------------------------------------
_exposeHeaders(response) {
var {
EXPOSE_HEADERS
} = this.CONSTANTS;
var {
HEADER_KEY = '',
HEADER_VALUE = ''
} = EXPOSE_HEADERS || {};
response.set(HEADER_KEY, HEADER_VALUE);
}
_setCustomHeaders(response) {
var {
SET_CUSTOM_HEADERS
} = this.CONSTANTS;
if (!(SET_CUSTOM_HEADERS instanceof Array)) {
return;
}
SET_CUSTOM_HEADERS.forEach(CUSTOM_HEADER => {
var {
HEADER_KEY,
RESPONSE_PROP
} = CUSTOM_HEADER;
var value = response[RESPONSE_PROP] || '';
response.set(HEADER_KEY, value);
});
} // -----------------------------------------------------------------------------
// --------- Handle Response -------------------------------------------------
_sendResponse(request, response, next) {
var resBody = response.encryptedBody || response.body || {};
var {
statusCode
} = resBody;
if (!resBody || !statusCode) {
resBody = new _ResponseBody.default(500, 'Response Data Not Found!');
}
response.status(resBody.statusCode).json(resBody);
}
_redirectResponse(request, response, next) {
var resBody = response.encryptedBody || response.body || {};
var {
statusCode,
data
} = resBody;
response.status(statusCode).redirect(data);
} // -----------------------------------------------------------------------------
}
exports.default = ResHandler;