UNPKG

irest-app-test

Version:

iRest simulator application tooling and scripts - Backend

2 lines 4.8 kB
"use strict";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")),_sqliteConf=_interopRequireDefault(require("../../../sqliteConf")),_responseHelper=_interopRequireDefault(require("../../../helpers/responseHelper")),_messages=require("../../../constants/messages"),_logger=_interopRequireDefault(require("../../../logger")),_httpStatus=_interopRequireDefault(require("../../../constants/httpStatus")),_util=require("../../../helpers/util"),_schemaDefaults=require("../../../constants/schemaDefaults");// const {Op} = require('sequelize'); 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;return _regenerator["default"].wrap(function(c){for(;;)switch(c.prev=c.next){case 0:if(e=a.body,f=e.userId,g=e.companyId,h=a.query,i=h.limit,j=h.page,k=h.sortBy,l=h.order,m=h.departmentId,n=h.companyId,o=h.search,p=(0,_util.getHighestRole)(null===a||void 0===a||null===(d=a.body)||void 0===d?void 0:d.roles),i&&(q=i,r=(j-1)*i),s="",t="",!m){c.next=1;break}s=" Projects.departmentId=\"".concat(m,"\" AND Projects.companyId=\"").concat(n,"\""),v=!0,c.next=3;break;case 1:if(p===_schemaDefaults.ROLES.COMPANY_ADMIN&&(s=" Projects.companyId=\"".concat(g,"\"")),p!==_schemaDefaults.ROLES.POC){c.next=3;break}return w=_sqliteConf["default"].UserDepartment,c.next=2,w.findAll({where:{userId:f}});case 2:x=c.sent,y=[],x.forEach(function(a){y.push(a.departmentId)}),s=" Projects.departmentId IN (\"".concat(y.join("\",\""),"\")");case 3:(p===_schemaDefaults.ROLES.SUB_USER||p===_schemaDefaults.ROLES.INDIVIDUAL)&&(v&&(s+=" AND "),s+=" UserProjects.userId = \"".concat(f,"\"")),o&&(z=null===o||void 0===o?void 0:o.trim(),s+=" AND Projects.projectName LIKE '%".concat(z,"%'")),A="",""!==s&&(A="WHERE ".concat(s)),B="SELECT count(DISTINCT(_id)) FROM (SELECT Projects.projectName, Projects.count, Projects._id, Projects.status, Projects.authenticationType, Projects.createdAt, Projects.updatedAt, Users.name ,Users.status as user_status , Departments.name as departmentName, Departments._id as departmentId, Companies.name as companyName, Companies._id as companyId from \"Projects\" LEFT JOIN \"Users\" ON Projects.userId = Users.id LEFT JOIN \"UserProjects\" ON Projects._id = UserProjects.projectId LEFT JOIN \"Departments\" ON Departments._id = Projects.departmentId LEFT JOIN \"Companies\" ON Companies._id = Users.companyId ".concat(A,")"),_sqliteConf["default"].sequelize.query(B).then(function(c){var d=(0,_slicedToArray2["default"])(c,1),e=d[0],g=(0,_slicedToArray2["default"])(e,1),h=g[0],i=h["count(DISTINCT(_id))"];return 0===i?(_logger["default"].debug("No project found for the user ".concat(f)),a.responseMessage=_messages.projectListMessage,a.statusCode=_httpStatus["default"].SuccessOK,a.responseData={projectList:[],totalProject:i},(0,_responseHelper["default"])(a,b)):void(t+=k&&l&&"updatedAt"!==k?" ORDER BY ".concat(k," ").concat(l):" ORDER BY Projects.updatedAt DESC",q&&(t+=" LIMIT ".concat(parseInt(q,10)," OFFSET ").concat(parseInt(r,10))),A+=t,u="SELECT DISTINCT Projects.projectName, Projects.count, Projects._id, Projects.status, Projects.authenticationType, Projects.createdAt, Projects.updatedAt, Users.name ,Users.status as user_status , Departments.name as departmentName, Departments._id as departmentId, Companies.name as companyName, Companies._id as companyId from \"Projects\" LEFT JOIN \"Users\" ON Projects.userId = Users.id LEFT JOIN \"UserProjects\" ON Projects._id = UserProjects.projectId LEFT JOIN \"Departments\" ON Departments._id = Projects.departmentId LEFT JOIN \"Companies\" ON Companies._id = Projects.companyId ".concat(A),_sqliteConf["default"].sequelize.query(u).then(function(c){var d=(0,_slicedToArray2["default"])(c,1),e=d[0];return _logger["default"].debug(e),a.responseMessage=_messages.projectListMessage,a.statusCode=_httpStatus["default"].SuccessOK,a.responseData={projectList:e,totalProject:i},(0,_responseHelper["default"])(a,b)})["catch"](function(c){return _logger["default"].error(JSON.stringify(c)),(0,_responseHelper["default"])(a,b)}))})["catch"](function(c){return _logger["default"].error(JSON.stringify(c)),a.responseMessage=_messages.badRequestMessage,(0,_responseHelper["default"])(a,b)});case 4:case"end":return c.stop()}},c)})),_list.apply(this,arguments)}var _default=exports["default"]=list;