irest-app-test
Version:
iRest simulator application tooling and scripts - Backend
4 lines • 9.01 kB
JavaScript
;var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=void 0;var _regenerator=_interopRequireDefault(require("@babel/runtime/regenerator")),_defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty")),_asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")),_formidable=_interopRequireDefault(require("formidable")),_fs=_interopRequireDefault(require("fs")),_os=_interopRequireDefault(require("os")),_nodeFetch=_interopRequireDefault(require("node-fetch")),_responseHelper=_interopRequireDefault(require("../../../helpers/responseHelper")),_messages=require("../../../constants/messages"),_logger=_interopRequireDefault(require("../../../logger")),_sqliteConf=_interopRequireDefault(require("../../../sqliteConf")),_generateUuidToken=_interopRequireDefault(require("../../../helpers/generateUuidToken")),_httpStatus=_interopRequireDefault(require("../../../constants/httpStatus")),_schemaDefaults=require("../../../constants/schemaDefaults"),User=_sqliteConf["default"].User,Mock=_sqliteConf["default"].Mock,Project=_sqliteConf["default"].Project,_require=require("sequelize"),Op=_require.Op;function importMock(a,b){User.findByPk(a.body.userId).then(function(c){return c?void getJsonData(a,b):(a.responseMessage=_messages.mockCreationUserNotExistMessage,a.statusCode=_httpStatus["default"].ClientErrorBadRequest,(0,_responseHelper["default"])(a,b))})["catch"](function(c){return _logger["default"].error(c),(0,_responseHelper["default"])(a,b)})}function getJsonData(a,b){var c=new _formidable["default"].IncomingForm;c.parse(a),c.on("fileBegin",function(a,b){b.path="".concat(_os["default"].tmpdir(),"/").concat(b.name)}),c.on("file",function(c,d){return"application/json"===d.type?void// eslint-disable-next-line security/detect-non-literal-fs-filename
_fs["default"].readFile(d.path,"utf8",function(c,d){if(c)return _logger["default"].error(c),(0,_responseHelper["default"])(a,b);var e={message:"JSON FILE DATA",status:_httpStatus["default"].SuccessOK};try{e.data=JSON.parse(d),processMocks(a,b,e)}catch(c){return _logger["default"].error(c),a.responseMessage=_messages.badRequestMessage,a.statusCode=_httpStatus["default"].ClientErrorBadRequest,(0,_responseHelper["default"])(a,b)}}):(a.responseMessage=_messages.fileTypeMismatchErrorMessage,a.statusCode=_httpStatus["default"].ClientErrorBadRequest,(0,_responseHelper["default"])(a,b))})}var updateMockToken=/*#__PURE__*/function(){var a=(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function d(a,b,c){var e,f,g;return _regenerator["default"].wrap(function(b){for(;;)switch(b.prev=b.next){case 0:return e=a.cookies["x-access-token"],f=process.env.API_BASE_URL,g="".concat(f,"/token/mock/").concat(c.mockId),b.abrupt("return",(0,_nodeFetch["default"])(g,{method:"PUT",body:JSON.stringify(c),headers:{"Content-Type":"application/json",Cookie:"x-access-token=".concat(e)}}).then(function(a){return a.json()}).then(/*#__PURE__*/function(){var a=(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function b(a){return _regenerator["default"].wrap(function(b){for(;;)switch(b.prev=b.next){case 0:return b.abrupt("return",a);case 1:case"end":return b.stop()}},b)}));return function(){return a.apply(this,arguments)}}()));case 1:case"end":return b.stop()}},d)}));return function(){return a.apply(this,arguments)}}(),importMockService=/*#__PURE__*/function(){var a=(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function d(a,b,c){var e,f,g;return _regenerator["default"].wrap(function(d){for(;;)switch(d.prev=d.next){case 0:return e=a.cookies["x-access-token"],f=process.env.API_BASE_URL,g="".concat(f,"/mock/create"),d.abrupt("return",(0,_nodeFetch["default"])(g,{method:"POST",body:JSON.stringify(c),headers:{"Content-Type":"application/json",Cookie:"x-access-token=".concat(e)}}).then(function(a){return a.json()}).then(/*#__PURE__*/function(){var d=(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function e(d){var f;return _regenerator["default"].wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(c.authenticationType!==_schemaDefaults.MOCK_TOKEN_AUTEHNTICATION_TYPE.MOCK_SPECIFIC){e.next=1;break}return f={mockId:d.id,token:(0,_generateUuidToken["default"])(),userId:c.userId,authenticationType:_schemaDefaults.MOCK_TOKEN_AUTEHNTICATION_TYPE.MOCK_SPECIFIC},e.next=1,updateMockToken(a,b,f);case 1:return e.abrupt("return",d);case 2:case"end":return e.stop()}},e)}));return function(){return d.apply(this,arguments)}}()));case 1:case"end":return d.stop()}},d)}));return function(){return a.apply(this,arguments)}}();function processMocks(){return _processMocks.apply(this,arguments)}function _processMocks(){return _processMocks=(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function d(a,b,c){var e,f,g,h,j,k,l,m,n,o,p;return _regenerator["default"].wrap(function(d){for(;;)switch(d.prev=d.next){case 0:return e=[],f=[],g=c.data,f=g,d.next=1,Project.findByPk(a.query.projectId);case 1:return h=d.sent,d.next=2,Mock.findAll({where:{projectId:a.query.projectId}});case 2:return j=d.sent,k=j.map(function(a){return a.mockName.toLowerCase()}),l=h.projectName,m=f.map(function(a){return{endpoint:(0,_defineProperty2["default"])({},Op.eq,"".concat(l,"/").concat(a.endpoint))}}),m.push({projectId:(0,_defineProperty2["default"])({},Op.eq,a.query.projectId)}),d.next=3,Mock.findAll({where:(0,_defineProperty2["default"])({},Op.or,m)});case 3:return n=d.sent.map(function(a){return a.endpoint}),o=[],d.next=4,f.map(function(b){var c=Math.floor,d=Math.pow;return b.projectName=l,b.userId=a.body.userId,b.projectId=a.query.projectId,b.info="",k.includes(b.mockName.toLowerCase())&&(b.info="Updated mock name.",b.mockName="".concat(b.mockName,"_").concat(c(d(10,4)+Math.random()*(d(10,5)-d(10,4)-1)))),n.includes("".concat(l,"/").concat(b.endpoint))&&(b.info+="Updated endpoint.",b.endpoint="".concat(c(d(10,4)+Math.random()*(d(10,5)-d(10,4)-1)),"/").concat(b.endpoint)),b});case 4:for(e=d.sent,p=0;p<e.length;p++)o.push(importMockService(a,b,e["".concat(p)]));return d.next=5,Promise.all(o).then(/*#__PURE__*/function(){var a=(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function c(a){var d,f,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;return _regenerator["default"].wrap(function(c){for(;;)switch(c.prev=c.next){case 0:for(d=[],f=[],h=0;h<a.length;h++)a["".concat(h)].message===_messages.mockCreationSuccessMessage?(a["".concat(h)].status=_httpStatus["default"].SuccessCreated,a["".concat(h)].duplicate=!1,d.push(a["".concat(h)]),f.push({success:{isIcon:!0,value:!0},name:{value:null===(k=a["".concat(h)])||void 0===k?void 0:k.mockName},endpoint:{value:null===(l=a["".concat(h)])||void 0===l?void 0:l.endpoint},info:{value:e["".concat(h)]?e["".concat(h)].info:"Nil"}})):null!==(i=a["".concat(h)].message)&&void 0!==i&&i.includes(_messages.mockCreationUniqueMockName)?(a["".concat(h)].status=_httpStatus["default"].ClientErrorBadRequest,a["".concat(h)].duplicate=!0,f.push({success:{isIcon:!0,value:!1},name:{value:null===(m=a["".concat(h)])||void 0===m?void 0:m.mockName},endpoint:{value:null===(n=a["".concat(h)])||void 0===n?void 0:n.endpoint},info:{value:"Mock name already exists."}})):null!==(j=a["".concat(h)].message)&&void 0!==j&&j.includes(_messages.mockCreationUniqueEndpointExistMessage)?(a["".concat(h)].status=_httpStatus["default"].ClientErrorBadRequest,a["".concat(h)].duplicate=!0,f.push({success:{isIcon:!0,value:!1},name:{value:null===(o=a["".concat(h)])||void 0===o?void 0:o.mockName},endpoint:{value:null===(p=a["".concat(h)])||void 0===p?void 0:p.endpoint},info:{value:"Endpoint already exists."}})):(// eslint-disable-next-line no-underscore-dangle
a["".concat(h)].status=_httpStatus["default"].ClientErrorBadRequest,a["".concat(h)].duplicate=!1,a["".concat(h)].message=null===(q=a["".concat(h)])||void 0===q?void 0:q.message,a["".concat(h)].mockName=null===(r=a["".concat(h)])||void 0===r||null===(r=r.errors)||void 0===r||null===(r=r._object)||void 0===r?void 0:r.mockName,delete a["".concat(h)].errors,f.push({success:{isIcon:!0,value:!1},// eslint-disable-next-line no-underscore-dangle
name:{value:null===(s=a["".concat(h)])||void 0===s||null===(s=s.errors)||void 0===s||null===(s=s._object)||void 0===s?void 0:s.mockName},endpoint:{value:null===(t=a["".concat(h)])||void 0===t?void 0:t.endpoint},info:{value:null===(u=a["".concat(h)])||void 0===u?void 0:u.message}}));return v="Out of ".concat(g.length," mocks, ").concat(d.length," mocks imported successfully!"),w={message:v,data:a,importedMockList:f},c.next=1,b.status(_httpStatus["default"].SuccessCreated).send(w);case 1:case"end":return c.stop()}},c)}));return function(){return a.apply(this,arguments)}}());case 5:case"end":return d.stop()}},d)})),_processMocks.apply(this,arguments)}var _default=exports["default"]=importMock;