irest-app-test
Version:
iRest simulator application tooling and scripts - Backend
9 lines • 6.91 kB
JavaScript
;var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=void 0;var _typeof2=_interopRequireDefault(require("@babel/runtime/helpers/typeof")),_messages=require("../../../constants/messages"),_responseHelper=_interopRequireDefault(require("../../../helpers/responseHelper")),_schemaDefaults=require("../../../constants/schemaDefaults"),_logger=_interopRequireDefault(require("../../../logger")),_sqliteConf=_interopRequireDefault(require("../../../sqliteConf")),_process$env=process.env,API_BASE_URL=_process$env.API_BASE_URL,MOCK_BASE_URL=_process$env.MOCK_BASE_URL;function update(a,b){var c=a.body,d=a.params.id,e=_sqliteConf["default"].User,f=_sqliteConf["default"].ServiceResponse,g=_sqliteConf["default"].Project;// validate user exist or not
e.findByPk(c.userId).then(function(){c.path=MOCK_BASE_URL;var e=_schemaDefaults.serviceResponseType.EXISTING_API,h=_schemaDefaults.serviceResponseType.DEFAULT_SERVICE_RESPONSE;// handle existing api for POST CREATION CALL
// service response will be saved when user hits the rest call
if(c.serviceResponseType!==e&&delete c.referenceId,c.isDelay||delete c.delaySeconds,c.isDynamicResponse||(delete c.dynamicResponseKey,delete c.dynamicResponseRandom,delete c.dynamicResponseSpecific,delete c.dynamicResponseSpecificKeyValue,delete c.isDynamicImportCount,delete c.dynamicImportCount,delete c.isDynamicImportSize,delete c.dynamicImportSize),c.isDynamicResponse&&c.dynamicResponseRandom&&(delete c.dynamicResponseSpecific,delete c.dynamicResponseSpecificKeyValue),c.isDynamicResponse&&c.dynamicResponseSpecific&&("object"===(0,_typeof2["default"])(c.dynamicResponseSpecificKeyValue)&&c.dynamicResponseSpecificKeyValue.constructor===Object||"object"===(0,_typeof2["default"])(c.dynamicResponseSpecificKeyValue)&&c.dynamicResponseSpecificKeyValue.constructor===Array))// stringify object/array body
try{c.dynamicResponseSpecificKeyValue=JSON.stringify(c.dynamicResponseSpecificKeyValue)}catch(c){return _logger["default"].error(JSON.stringify(c)),a.statusCode=400,a.responseMessage=_messages.invalidDynamicResponseSpecificKeyValueMessage,(0,_responseHelper["default"])(a,b)}// dynamic response extra key removal before insert into the DB
// end point
// manually validate the json body and convert into string before save
var i=c.serviceResponseBody;if("object"===(0,_typeof2["default"])(i)&&i.constructor===Object)try{i=JSON.stringify(i),c.serviceResponseBody=i}catch(c){return _logger["default"].error(JSON.stringify(c)),a.statusCode=400,a.responseMessage=_messages.invalidServiceResponseBodyMessage,(0,_responseHelper["default"])(a,b)}g.findByPk(c.projectId).then(function(e){return c.endpointRequestPath=c.endpoint,c.endpoint="".concat(e.projectName,"/").concat(c.endpoint),c.projectName=e.projectName,c.serviceResponseType===h?void f.destroy({where:{mockId:d}}).then(function(){return defaultOptionHandler(a,b)})["catch"](function(c){return _logger["default"].error(JSON.stringify(c)),a.statusCode=404,(0,_responseHelper["default"])(a,b)}):saveOptionHandler(a,b)})["catch"](function(c){return _logger["default"].error(JSON.stringify(c)),a.statusCode=400,a.responseMessage=_messages.mockCreationProjectNotExistMessage,(0,_responseHelper["default"])(a,b)})})["catch"](function(c){return _logger["default"].error(JSON.stringify(c)),a.responseMessage=_messages.mockCreationUserNotExistMessage,a.statusCode=400,(0,_responseHelper["default"])(a,b)})}function defaultOptionHandler(a,b){var c=_sqliteConf["default"].Mock,d=_sqliteConf["default"].ApiResponseSchemaType,e=a.body,f=a.params.id,g=e.ApiResponseSchemaTypes,h=e.statusCode;e.headers=JSON.stringify(e.headers),e.params=JSON.stringify(e.params),e.allowedMethods=JSON.stringify(e.allowedMethods);var i=[];c.update(e,{where:{_id:f}}).then(function(c){try{Object.keys(g).forEach(function(a){i.push({method:a,successResponse:JSON.stringify(g[a]),statusCode:h,projectId:null===e||void 0===e?void 0:e.projectId,mockId:f})})}catch(c){return _logger["default"].error(JSON.stringify(c)),(0,_responseHelper["default"])(a,b)}d.destroy({where:{mockId:f}}).then(function(){return d.bulkCreate(i),e.mockId=f,a.mok=c,storeServiceResponse(a,b)})["catch"](function(c){return _logger["default"].error(JSON.stringify(c)),(0,_responseHelper["default"])(a,b)})})["catch"](function(c){var d,e;return _logger["default"].error(JSON.stringify(c)),null!==c&&void 0!==c&&null!==(d=c.fields)&&void 0!==d&&d.includes("endpoint")?(a.statusCode=417,a.responseMessage=_messages.mockCreationUniqueEndpointExistMessage,(0,_responseHelper["default"])(a,b)):null!==c&&void 0!==c&&null!==(e=c.fields)&&void 0!==e&&e.includes("mockName")?(a.statusCode=417,a.responseMessage=_messages.mockCreationUniqueMockName,(0,_responseHelper["default"])(a,b)):(0,_responseHelper["default"])(a,b)})}function saveOptionHandler(a,b){var c=a.body,d=a.params.id,e=_sqliteConf["default"].Mock,f=_sqliteConf["default"].ApiResponseSchemaType;c.headers=JSON.stringify(c.headers),c.params=JSON.stringify(c.params),c.allowedMethods=JSON.stringify(c.allowedMethods);var g=c.ApiResponseSchemaTypes,h=c.statusCode,i=[];e.update(c,{where:{_id:d}}).then(function(){a.responseMessage=_messages.mockupdationSuccessMessage,a.statusCode=200;try{Object.keys(g).forEach(function(a){i.push({method:a,successResponse:JSON.stringify(g[a]),statusCode:h,projectId:null===c||void 0===c?void 0:c.projectId,mockId:d})}),f.destroy({where:{mockId:d}}),f.bulkCreate(i)}catch(c){return _logger["default"].error(JSON.stringify(c)),(0,_responseHelper["default"])(a,b)}return a.responseData={// eslint-disable-next-line object-shorthand
id:d,mockName:c.mockName,mockUrl:"".concat(API_BASE_URL).concat(MOCK_BASE_URL,"/").concat(c.endpoint),allowedMethods:JSON.parse(c.allowedMethods)},(0,_responseHelper["default"])(a,b)})["catch"](function(c){var d,e;return _logger["default"].error(JSON.stringify(c)),null!==c&&void 0!==c&&null!==(d=c.fields)&&void 0!==d&&d.includes("endpoint")?(a.statusCode=417,a.responseMessage=_messages.mockCreationUniqueEndpointExistMessage,(0,_responseHelper["default"])(a,b)):null!==c&&void 0!==c&&null!==(e=c.fields)&&void 0!==e&&e.includes("mockName")?(a.statusCode=417,a.responseMessage=_messages.mockCreationUniqueMockName,(0,_responseHelper["default"])(a,b)):(0,_responseHelper["default"])(a,b)})}function storeServiceResponse(a,b){var c=_sqliteConf["default"].ServiceResponse,d=a.body;c.create(d).then(function(){a.responseMessage=_messages.mockupdationSuccessMessage,a.statusCode=200;var c=a.mok;return a.responseData={id:c._id,mockName:c.mockName,mockUrl:"".concat(API_BASE_URL).concat(MOCK_BASE_URL,"/").concat(c.endpoint),allowedMethods:c.allowedMethods},(0,_responseHelper["default"])(a,b)})["catch"](function(c){return _logger["default"].error(JSON.stringify(c)),(0,_responseHelper["default"])(a,b)})}var _default=exports["default"]=update;