irest-app-test
Version:
iRest simulator application tooling and scripts - Backend
8 lines • 3.76 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")),_defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty")),_sqliteConf=_interopRequireDefault(require("../../../sqliteConf")),_responseHelper=_interopRequireDefault(require("../../../helpers/responseHelper")),_messages=require("../../../constants/messages"),_httpStatus=_interopRequireDefault(require("../../../constants/httpStatus")),_logger=_interopRequireDefault(require("../../../logger")),_assignedList=_interopRequireDefault(require("../project/assignedList")),_assign=_interopRequireDefault(require("../project/assign")),_require=require("sequelize"),Op=_require.Op;function create(a,b){var c=_sqliteConf["default"].UserDepartment,d=a.body,f=d.paramUserId,g=d.isUpdate,h=d.departmentIds;if(g)c.findAll({where:{userId:f}}).then(function(d){var e=d.filter(function(a){return a.userId===f}),g=e.map(function(a){return a.departmentId});c.destroy({where:{userId:f,departmentId:g}}).then(function(c){if(c)return a.body.departmentIds=h,assignDepartment(a,b)})["catch"](function(c){return a.statusCode=_httpStatus["default"].ClientErrorBadRequest,a.responseMessage=_messages.mockCreationUserNotExistMessage,_logger["default"].error(c),(0,_responseHelper["default"])(a,b)})})["catch"](function(c){return a.statusCode=c.code,a.responseMessage=c.message,_logger["default"].error(c),(0,_responseHelper["default"])(a,b)});else{// check if association already exist and respond
var i=h.map(function(a){return c.findOne({where:(0,_defineProperty2["default"])({},Op.and,[{userId:f},{departmentId:a}])})});Promise.all(i).then(function(c){return null===c[0]?(a.body.departmentIds=h,assignDepartment(a,b)):(a.statusCode=_httpStatus["default"].ClientErrorExpectationFailed,a.responseMessage=_messages.userDepartmentMsg,(0,_responseHelper["default"])(a,b));// assign department
})["catch"](function(c){return a.statusCode=c.code,a.responseMessage=c.message,_logger["default"].error(c),(0,_responseHelper["default"])(a,b)})}}/**
*
* @param {*} req
* @param {*} res
* assign department to user
*/function assignDepartment(){return _assignDepartment.apply(this,arguments)}function _assignDepartment(){return _assignDepartment=(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;return _regenerator["default"].wrap(function(c){for(;;)switch(c.prev=c.next){case 0:return d=_sqliteConf["default"].UserDepartment,e=a.body,f=e.paramUserId,g=e.departmentIds,h=a.X_ACCESS_TOKEN,a.body.bypassResponseHandler=!0,c.next=1,(0,_assignedList["default"])(a,b);case 1:i=c.sent,j=(0,_slicedToArray2["default"])(i,2),k=j[0],l=j[1],m=(0,_slicedToArray2["default"])(l,1),n=m[0],o=(0,_slicedToArray2["default"])(k,1),p=o[0],q=n.filter(function(a){return p.some(function(b){return b._id===a._id})}),r=q.map(function(a){return a._id}),s=n.map(function(a){return a._id}),t=g.map(function(a){return d.create({userId:f,departmentId:a})}),Promise.all(t).then(function(){return a.body.projectIds=r,a.body.assignedProj=s,a.body.assignId=f,a.body.token=h,(0,_assign["default"])(a,b)})["catch"](function(c){return a.statusCode=c.code,a.responseMessage=c.message,_logger["default"].error(c),(0,_responseHelper["default"])(a,b)});case 2:case"end":return c.stop()}},c)})),_assignDepartment.apply(this,arguments)}var _default=exports["default"]=create;