irest-app-test
Version:
iRest simulator application tooling and scripts - Backend
1 lines • 3.2 kB
JavaScript
;var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=void 0;var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty")),_url=require("url"),_responseHelper=_interopRequireDefault(require("../../helpers/responseHelper")),_sqliteConf=_interopRequireDefault(require("../../sqliteConf")),_logger=_interopRequireDefault(require("../../logger")),_messages=require("../../constants/messages"),_schemaDefaults=require("../../constants/schemaDefaults"),_util=require("../../helpers/util"),_require=require("sequelize"),Op=_require.Op,handleUnauthorizeResponse=function(a,b){return _logger["default"].error(_messages.badRequestMessage),a.statusCode=498,a.responseMessage=_messages.badRequestMessage,(0,_responseHelper["default"])(a,b)},checkProjBasedAuth=function(a,b,c){var d=_sqliteConf["default"].Token,e=_sqliteConf["default"].Project,f=a.mockData,g=a.token;e.findByPk(f.projectId).then(function(e){_logger["default"].debug(e),e.authenticationType?d.findOne({where:{projectId:f.projectId}}).then(function(d){return _logger["default"].debug(d),d.token===g?void c():handleUnauthorizeResponse(a,b)})["catch"](function(a){_logger["default"].err(a)}):c()})["catch"](function(a){_logger["default"].error(JSON.stringify(a))})};function tokenValidator(a,b,c){var d,e=null===a||void 0===a||null===(d=a.query)||void 0===d?void 0:d.rapidDoc,f=process.env.MOCK_BASE_URL;if(e)c();else{var g,h=_sqliteConf["default"].Mock,i=_sqliteConf["default"].Token,j=(0,_url.parse)(null===a||void 0===a?void 0:a.url),k=j.pathname,l=k.replace("".concat(f,"/"),""),m=(0,_util.parseCookies)(a),n=Object.prototype.hasOwnProperty.call(a.headers,_schemaDefaults.iRestAuthToken.toLowerCase())||Object.prototype.hasOwnProperty.call(a.query,_schemaDefaults.iRestAuthToken)||(null===(g=a.headers)||void 0===g||null===(g=g.cookie)||void 0===g?void 0:g.includes(_schemaDefaults.iRestAuthToken)),o=a.query[_schemaDefaults.iRestAuthToken]||a.headers[_schemaDefaults.iRestAuthToken.toLowerCase()];Object.prototype.hasOwnProperty.call(m,_schemaDefaults.iRestAuthToken)&&(o=m[_schemaDefaults.iRestAuthToken]),n&&o===void 0&&(o=""),h.findOne({where:{endpoint:(0,_defineProperty2["default"])({},Op.like,"%".concat(l,"%"))}}).then(function(d){if(null===d)return a.statusCode=404,a.responseMessage=_messages.apiSimulationNoRecordFoundErrorMessage,(0,_responseHelper["default"])(a,b);var e=d.authenticationType;if(e===_schemaDefaults.MOCK_TOKEN_AUTEHNTICATION_TYPE.OFF)c();else if(e===_schemaDefaults.MOCK_TOKEN_AUTEHNTICATION_TYPE.MOCK_SPECIFIC){if(!n)return handleUnauthorizeResponse(a,b);i.findOne({where:{token:o,mockId:d._id}}).then(function(e){var f;return e?e.mockId&&e.token===o&&(null===e||void 0===e||null===(f=e.mockId)||void 0===f?void 0:f.toString())===d._id.toString()?void c():handleUnauthorizeResponse(a,b):handleUnauthorizeResponse(a,b)})["catch"](function(a){_logger["default"].error(JSON.stringify(a))})}else return a.mockData=d,a.token=o,checkProjBasedAuth(a,b,c)})["catch"](function(a){_logger["default"].error(JSON.stringify(a))})}}var _default=exports["default"]=tokenValidator;