irest-app-test
Version:
iRest simulator application tooling and scripts - Backend
3 lines • 9.95 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")),_slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")),_asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")),_responseHelper=_interopRequireDefault(require("../../../helpers/responseHelper")),_messages=require("../../../constants/messages"),_schemaDefaults=require("../../../constants/schemaDefaults"),_logger=_interopRequireDefault(require("../../../logger")),_sqliteConf=_interopRequireDefault(require("../../../sqliteConf")),_httpStatus=_interopRequireDefault(require("../../../constants/httpStatus")),_util=require("../../../helpers/util"),_process$env=process.env,API_BASE_URL=_process$env.API_BASE_URL,MOCK_BASE_URL=_process$env.MOCK_BASE_URL;function list(){return _list.apply(this,arguments)}function _list(){return _list=(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function c(a,b){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L;return _regenerator["default"].wrap(function(c){for(;;)switch(c.prev=c.next){case 0:if(L=function(){var c=H(A);_sqliteConf["default"].sequelize.query(c).then(function(c){var d=(0,_slicedToArray2["default"])(c,1),e=d[0],f=(0,_slicedToArray2["default"])(e,1),g=f[0],h=g["count(_id)"];if(0===h)return a.responseMessage=_messages.mockListMessage,a.statusCode=_httpStatus["default"].SuccessOK,a.responseData={mockList:[],totalMocks:h},(0,_responseHelper["default"])(a,b);if(w=K(w),!q){A+=w&&n?" ORDER BY Data.".concat(w," ").concat(n):" ORDER BY Data.updatedAt DESC",A+=r?"":" LIMIT ".concat(parseInt(i,10)," OFFSET ").concat(parseInt(k,10));// Join on Mock and Token table with union on mock authenitcation type project_specific or OFF and Mock specific
var j=I(A);_sqliteConf["default"].sequelize.query(j).then(function(c){var d=(0,_slicedToArray2["default"])(c,1),e=d[0];return Array.prototype.forEach.call(e,function(a){a.endpoint="".concat(API_BASE_URL).concat(MOCK_BASE_URL,"/").concat(a.endpoint),a.allowedMethods=JSON.parse(a.allowedMethods)}),a.responseMessage=_messages.mockListMessage,a.statusCode=_httpStatus["default"].SuccessOK,a.responseData={mockList:e,totalMocks:h},(0,_responseHelper["default"])(a,b)})["catch"](function(c){return _logger["default"].error(JSON.stringify(c)),a.statusCode=_httpStatus["default"].ClientErrorBadRequest,a.responseMessage=_messages.badRequestMessage,(0,_responseHelper["default"])(a,b)})}else{var l,m=null===q||void 0===q?void 0:q.trim();A+=" AND (Data.projectName LIKE '%".concat(m,"%' OR Data.mockName LIKE '%").concat(m,"%' OR Data.endpoint LIKE '%").concat(m,"%')"),A+=w&&n?" ORDER BY Data.".concat(w," ").concat(n):" ORDER BY Data.updatedAt DESC",A+=r?"":" LIMIT ".concat(parseInt(i,10)," OFFSET ").concat(parseInt(k,10));// Join on Mock and Token table with union on mock authenitcation type project_specific or OFF and Mock specific
var s=J(A);_sqliteConf["default"].sequelize.query(s).then(function(c){l=c[0].length;var d=(0,_slicedToArray2["default"])(c,1),e=d[0];return Array.prototype.forEach.call(e,function(a){a.endpoint="".concat(API_BASE_URL).concat(MOCK_BASE_URL,"/").concat(a.endpoint),a.allowedMethods=JSON.parse(a.allowedMethods)}),(o&&0<o.length||p&&0<p.length)&&(l=e.length),a.responseMessage=_messages.mockListMessage,a.statusCode=_httpStatus["default"].SuccessOK,a.responseData={mockList:e,totalMocks:l},(0,_responseHelper["default"])(a,b)})["catch"](function(c){return _logger["default"].error(JSON.stringify(c)),a.responseMessage=_messages.badRequestMessage,(0,_responseHelper["default"])(a,b)})}})["catch"](function(c){return _logger["default"].error(JSON.stringify(c)),a.responseMessage=_messages.badRequestMessage,(0,_responseHelper["default"])(a,b)})},K=function(a){return"apiName"===a?"mockName":"endPoint"===a?"endPoint":"authType"===a?"authenticationType":"updatedOn"===a?"updatedAt":"status"===a?"mockStatus":"requestMethod"===a?"allowedMethods":a},J=function(a){return"SELECT * FROM (SELECT Mocks._id, Mocks.status, Mocks.updatedAt, Mocks.userId, Mocks.projectName, Mocks.projectId, Mocks.endpoint, Mocks.statusCode, Mocks.mockName, Mocks.mockStatus, Mocks.serviceResponseType, Mocks.allowedMethods, Mocks.authenticationType, Mocks.path, Projects.companyId, Projects.departmentId, Tokens.token from \"Mocks\" INNER JOIN \"Tokens\" ON Mocks.projectId = Tokens.projectId INNER JOIN \"Projects\" ON Mocks.projectId = Projects._id WHERE Mocks.authenticationType = \"PROJECT_SPECIFIC\" OR Mocks.authenticationType = \"OFF\" UNION SELECT Mocks._id, Mocks.status, Mocks.updatedAt, Mocks.userId, Mocks.projectName, Mocks.projectId, Mocks.endpoint, Mocks.statusCode, Mocks.mockName, Mocks.mockStatus, Mocks.serviceResponseType, Mocks.allowedMethods, Mocks.authenticationType, Mocks.path, Projects.companyId, Projects.departmentId, Tokens.token from \"Mocks\" INNER JOIN \"Tokens\" ON Mocks._id = Tokens.mockId INNER JOIN \"Projects\" ON Mocks.projectId = Projects._id WHERE Mocks.authenticationType = \"MOCK_SPECIFIC\") AS Data ".concat(a)},I=function(a){return"SELECT * FROM (SELECT Mocks._id, Mocks.status, Mocks.updatedAt, Mocks.userId, Mocks.projectName, Mocks.projectId, Mocks.endpoint, Mocks.statusCode, Mocks.mockName, Mocks.mockStatus, Mocks.serviceResponseType, Mocks.allowedMethods, Mocks.authenticationType, Mocks.path, Projects.companyId, Projects.departmentId, Tokens.token from \"Mocks\" INNER JOIN \"Tokens\" ON Mocks.projectId = Tokens.projectId INNER JOIN \"Projects\" ON Mocks.projectId = Projects._id WHERE Mocks.authenticationType = \"PROJECT_SPECIFIC\" OR Mocks.authenticationType = \"OFF\" UNION SELECT Mocks._id, Mocks.status, Mocks.updatedAt, Mocks.userId, Mocks.projectName, Mocks.projectId, Mocks.endpoint, Mocks.statusCode, Mocks.mockName, Mocks.mockStatus, Mocks.serviceResponseType, Mocks.allowedMethods, Mocks.authenticationType, Mocks.path, Projects.companyId, Projects.departmentId, Tokens.token from \"Mocks\" INNER JOIN \"Tokens\" ON Mocks._id = Tokens.mockId INNER JOIN \"Projects\" ON Mocks.projectId = Projects._id WHERE Mocks.authenticationType = \"MOCK_SPECIFIC\") AS Data ".concat(a)},H=function(a){return"SELECT count(_id) FROM (SELECT Mocks._id, Mocks.status, Mocks.updatedAt, Mocks.userId, Mocks.projectName, Mocks.projectId, Mocks.endpoint, Mocks.statusCode, Mocks.mockName, Mocks.mockStatus, Mocks.serviceResponseType, Mocks.allowedMethods, Mocks.authenticationType, Mocks.path, Projects.companyId, Projects.departmentId, Tokens.token from \"Mocks\" INNER JOIN \"Tokens\" ON Mocks.projectId = Tokens.projectId INNER JOIN \"Projects\" ON Mocks.projectId = Projects._id WHERE Mocks.authenticationType = \"PROJECT_SPECIFIC\" OR Mocks.authenticationType = \"OFF\" UNION SELECT Mocks._id, Mocks.status, Mocks.updatedAt, Mocks.userId, Mocks.projectName, Mocks.projectId, Mocks.endpoint, Mocks.statusCode, Mocks.mockName, Mocks.mockStatus, Mocks.serviceResponseType, Mocks.allowedMethods, Mocks.authenticationType, Mocks.path, Projects.companyId, Projects.departmentId, Tokens.token from \"Mocks\" INNER JOIN \"Tokens\" ON Mocks._id = Tokens.mockId INNER JOIN \"Projects\" ON Mocks.projectId = Projects._id WHERE Mocks.authenticationType = \"MOCK_SPECIFIC\") AS Data ".concat(a," ORDER BY Data.updatedAt DESC")},e=a.body.userId,f=(0,_util.getHighestRole)(null===a||void 0===a||null===(d=a.body)||void 0===d?void 0:d.roles),g=a.query,h=g.limit,i=void 0===h?10:h,j=g.offset,k=void 0===j?0:j,l=g.existing,m=g.projectId,n=g.order,o=g.projectName,p=g.serviceResponseType,q=g.search,r=g.exportRecord,s=g.status,t=g.authenticationType,u=g.allowedMethods,v=g.records,w=a.query.sortBy,x=_sqliteConf["default"].UserProjects,y=_sqliteConf["default"].UserDepartment,z="",A="WHERE ",B="/rest",A+=e&&_schemaDefaults.ROLES.INDIVIDUAL===f?" Data.userId = \"".concat(e,"\""):" Data.path = \"".concat(B,"\""),l&&"true"===l&&(A+="AND Data.serviceResponseType = \"".concat(_schemaDefaults.serviceResponseType.SAVE,"\""),A+="AND Data.method = \"".concat(_schemaDefaults.mockMethodList.POST,"\"")),m&&(A+="AND Data.projectId = \"".concat(m,"\"")),o&&"any"!==o&&(A+="AND Data.projectName = \"".concat(o,"\"")),f===_schemaDefaults.ROLES.COMPANY_ADMIN&&(A+="AND Data.companyId = \"".concat(null===a||void 0===a||null===(C=a.body)||void 0===C?void 0:C.companyId,"\"")),f!==_schemaDefaults.ROLES.POC){c.next=2;break}return c.next=1,y.findAll({where:{userId:e}});case 1:D=c.sent,E=[],D.forEach(function(a){E.push(a.departmentId)}),A+="AND Data.departmentId IN (\"".concat(E.join("\",\""),"\")");case 2:if(s&&!s.includes("any")&&s.forEach(function(a,b){A+=" ".concat(0===b?"AND":"OR"," Data.mockStatus = \"").concat(a,"\"")}),t&&!t.includes("any")&&(F=t.map(function(a){return a.toUpperCase()}),F.forEach(function(a,b){A+=" ".concat(0===b?"AND":"OR"," Data.authenticationType = \"").concat(a,"\"")})),u&&!u.includes("any")&&u.forEach(function(a){A+=" AND Data.allowedMethods LIKE '%\"".concat(a,"\"%'")}),p&&(A+="AND Data.serviceResponseType = \"".concat(p,"\"")),r&&(z=v.split(",").map(function(a){return"\"".concat(a,"\"")}).join(",")),A+=r?" AND Data._id IN (".concat(z,")"):"",f!==_schemaDefaults.ROLES.SUB_USER){c.next=3;break}x.findAll({where:{userId:null===a||void 0===a||null===(G=a.body)||void 0===G?void 0:G.userId}}).then(function(c){if(c.length){var d=c.map(function(a){return a.projectId});return d.forEach(function(a,b){A+=" ".concat(0===b?"AND":"OR"," Data.projectId = \"").concat(a,"\"")}),L(A)}return a.responseMessage=_messages.mockListMessage,a.statusCode=_httpStatus["default"].SuccessOK,a.responseData={mockList:[],totalMocks:0},(0,_responseHelper["default"])(a,b)}),c.next=4;break;case 3:return c.abrupt("return",L(A));case 4:case"end":return c.stop()}},c)})),_list.apply(this,arguments)}var _default=exports["default"]=list;