UNPKG

irest-app-test

Version:

iRest is a zero-configuration application that allows you to easily create/manage APIs, generate random data on demand and perform operations on that data using REST interface.

7 lines 3.44 kB
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=void 0;var _url=require("url"),_responseHelper=_interopRequireDefault(require("../../../helpers/responseHelper")),_schemaDefaults=require("../../../constants/schemaDefaults"),_messages=require("../../../constants/messages"),_defaultResponse=_interopRequireDefault(require("./defaultResponse")),_saveResponse=_interopRequireDefault(require("./saveResponse")),_logger=_interopRequireDefault(require("../../../logger")),_sqliteConf=_interopRequireDefault(require("../../../sqliteConf")),_util=require("../../../helpers/util");function apiResponse(a,b){function c(){e.then(function(c){// no mock found in db if(_logger["default"].debug(c),null===c)return _logger["default"].debug("No Matching Mock Found."),a.statusCode=404,a.responseMessage=_messages.apiSimulationNoRecordFoundErrorMessage,(0,_responseHelper["default"])(a,b);// if mock method does not match with our if(!c.allowedMethods.includes(a.method))return a.statusCode=405,a.responseMessage=_messages.methodNotAllowedErrorMessage,(0,_responseHelper["default"])(a,b);// disabled mock handler if(!d&&(c.status===_schemaDefaults.status.DISABLED||c.mockStatus===_schemaDefaults.status.DISABLED))return a.statusCode=404,a.responseMessage=_messages.apiSimulationMockDisabledErrorMessage,(0,_responseHelper["default"])(a,b);// adding headers to response var e={};// adding delay, if exist if(c.headers=JSON.parse(c.headers),c.headers.forEach(function(a){e[a.key]=a.value}),b.header(e),b.header("Content-Type",c.contentType),a.mockData=c,c.isDelay){var f=1e3*c.delaySeconds;return setTimeout(function(){controlResponse(a,b)},f)}return controlResponse(a,b)})["catch"](function(c){return _logger["default"].error(c),(0,_responseHelper["default"])(a,b)})}var d,e,f,g=_sqliteConf["default"].Mock,h=_sqliteConf["default"].TempMock,i=_sqliteConf["default"].ApiResponseSchemaType,j=_sqliteConf["default"].TempApiResponseSchemaType,k=_schemaDefaults.queryParamObj.IREST_RAPID_DOC,l=a.query.tempId,m=process.env.MOCK_BASE_URL;if(l)d=!0,a.isPreview=d,e=h.findOne({where:{_id:l},include:[{model:j}]}),c();else if(a.method===_schemaDefaults.mockMethodList[a.method]&&!l){var n=(0,_url.parse)(null===a||void 0===a?void 0:a.url),o=n.pathname,p=n.search,q=(0,_util.parseUrl)(p),r=o.replace("".concat(m,"/"),"")+q;/* eslint-disable object-shorthand */ /* eslint-enable object-shorthand */f="true"===(null===a||void 0===a?void 0:a.query[k]),a.isRapidDoc=f,e=g.findOne({where:{endpoint:r},include:[{model:i}]}),e.then(function(d){if(!d)return a.statusCode=404,a.responseMessage=_messages.apiSimulationNoRecordFoundErrorMessage,(0,_responseHelper["default"])(a,b);return(d.allowedMethods=JSON.parse(d.allowedMethods),d.allowedMethods.includes(a.method))?void c():(a.statusCode=405,a.responseMessage=_messages.methodNotAllowedErrorMessage,(0,_responseHelper["default"])(a,b))})}}function controlResponse(a,b){var c=a.mockData;// Whenever user api's are called we need to send the response send as he/she asked in the response handler file return a.mockApi=!0,c.serviceResponseType===_schemaDefaults.serviceResponseType.DEFAULT_SERVICE_RESPONSE?(0,_defaultResponse["default"])(a,b):c.serviceResponseType===_schemaDefaults.serviceResponseType.SAVE?(0,_saveResponse["default"])(a,b):void 0}var _default=apiResponse;exports["default"]=_default;