Built motion from commit e0fa946e.|2.6.5
[motion2.git] / server / api / squareProject / squareProject.controller.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x2542=['where','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','show','params','length','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','catch','error','production','ids','removeUsers','isArray','emit','userSquareProject:remove','findOne','User','getUsers','lodash','ioredis','../../components/parsers/qs','../../config/logger','../../config/environment','redis','defaults','localhost','socket.io-emitter','./squareProject.socket','register','sendStatus','status','end','json','undefined','limit','count','set','Content-Range','then','destroy','SquareProjects','UserProfileResource','publish','agi','stringify','name','send','index','map','SquareProject','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','offset','order','sort','pick','filter'];(function(_0x531db2,_0x59bb3b){var _0x49963f=function(_0x2b5b9f){while(--_0x2b5b9f){_0x531db2['push'](_0x531db2['shift']());}};_0x49963f(++_0x59bb3b);}(_0x2542,0x169));var _0x2254=function(_0x5e2ab7,_0x955fc1){_0x5e2ab7=_0x5e2ab7-0x0;var _0x66f268=_0x2542[_0x5e2ab7];return _0x66f268;};'use strict';var _=require(_0x2254('0x0'));var Redis=require(_0x2254('0x1'));var qs=require(_0x2254('0x2'));var logger=require(_0x2254('0x3'))('api');var config=require(_0x2254('0x4'));var db=require('../../mysqldb')['db'];config[_0x2254('0x5')]=_[_0x2254('0x6')](config[_0x2254('0x5')],{'host':_0x2254('0x7'),'port':0x18eb});var socket=require(_0x2254('0x8'))(new Redis(config['redis']));require(_0x2254('0x9'))[_0x2254('0xa')](socket);function respondWithStatusCode(_0x2ee7ee,_0x3c45ec){_0x3c45ec=_0x3c45ec||0xcc;return function(_0x1637ad){if(_0x1637ad){return _0x2ee7ee[_0x2254('0xb')](_0x3c45ec);}return _0x2ee7ee[_0x2254('0xc')](_0x3c45ec)[_0x2254('0xd')]();};}function respondWithResult(_0xb395da,_0x1ae415){_0x1ae415=_0x1ae415||0xc8;return function(_0x38fb2b){if(_0x38fb2b){return _0xb395da['status'](_0x1ae415)[_0x2254('0xe')](_0x38fb2b);}};}function respondWithFilteredResult(_0x2655ea,_0x506abe){return function(_0x143c90){if(_0x143c90){var _0x575d58=typeof _0x506abe['offset']===_0x2254('0xf')&&typeof _0x506abe[_0x2254('0x10')]===_0x2254('0xf');var _0xdcb670=_0x143c90[_0x2254('0x11')];var _0x381efe=_0x575d58?0x0:_0x506abe['offset'];var _0x439238=_0x575d58?_0x143c90[_0x2254('0x11')]:_0x506abe['offset']+_0x506abe[_0x2254('0x10')];var _0x1e582d;if(_0x439238>=_0xdcb670){_0x439238=_0xdcb670;_0x1e582d=0xc8;}else{_0x1e582d=0xce;}_0x2655ea[_0x2254('0xc')](_0x1e582d);return _0x2655ea[_0x2254('0x12')](_0x2254('0x13'),_0x381efe+'-'+_0x439238+'/'+_0xdcb670)[_0x2254('0xe')](_0x143c90);}return null;};}function saveUpdates(_0x50f137){return function(_0x18baf4){if(_0x18baf4){return _0x18baf4['update'](_0x50f137)[_0x2254('0x14')](function(_0x2a2470){return _0x2a2470;});}return null;};}function removeEntity(_0x170ffa){return function(_0x25f8b2){if(_0x25f8b2){return _0x25f8b2[_0x2254('0x15')]()[_0x2254('0x14')](function(){var _0x497724=_0x25f8b2['get']({'plain':!![]});var _0x5ec98d=_0x2254('0x16');return db[_0x2254('0x17')][_0x2254('0x15')]({'where':{'type':_0x5ec98d,'resourceId':_0x497724['id']}})[_0x2254('0x14')](function(){return _0x25f8b2;});})[_0x2254('0x14')](function(){var _0x2339bc=new Redis(config['redis']);_0x2339bc[_0x2254('0x18')](_0x2254('0x19'),JSON[_0x2254('0x1a')]({'id':_0x25f8b2['id'],'deleted':!![]}));})['then'](function(){_0x170ffa['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x1e8a98){return function(_0x559af4){if(!_0x559af4){_0x1e8a98[_0x2254('0xb')](0x194);}return _0x559af4;};}function handleError(_0x56b91e,_0x5713e4){_0x5713e4=_0x5713e4||0x1f4;return function(_0x4d8faf){logger['error'](_0x4d8faf['stack']);if(_0x4d8faf['name']){delete _0x4d8faf[_0x2254('0x1b')];}_0x56b91e[_0x2254('0xc')](_0x5713e4)[_0x2254('0x1c')](_0x4d8faf);};}exports[_0x2254('0x1d')]=function(_0x13522d,_0x1349c9){var _0x51b578={},_0x4a8274={},_0x1ada42={'count':0x0,'rows':[]};var _0x4f6877=_[_0x2254('0x1e')](db[_0x2254('0x1f')][_0x2254('0x20')],function(_0x3aa0bd){return{'name':_0x3aa0bd[_0x2254('0x21')],'type':_0x3aa0bd['type'][_0x2254('0x22')]};});_0x4a8274[_0x2254('0x23')]=_[_0x2254('0x1e')](_0x4f6877,_0x2254('0x1b'));_0x4a8274[_0x2254('0x24')]=_[_0x2254('0x25')](_0x13522d[_0x2254('0x24')]);_0x4a8274[_0x2254('0x26')]=_[_0x2254('0x27')](_0x4a8274[_0x2254('0x23')],_0x4a8274[_0x2254('0x24')]);_0x51b578[_0x2254('0x28')]=_[_0x2254('0x27')](_0x4a8274[_0x2254('0x23')],qs[_0x2254('0x29')](_0x13522d[_0x2254('0x24')][_0x2254('0x29')]));_0x51b578[_0x2254('0x28')]=_0x51b578[_0x2254('0x28')]['length']?_0x51b578[_0x2254('0x28')]:_0x4a8274[_0x2254('0x23')];if(!_0x13522d[_0x2254('0x24')][_0x2254('0x2a')](_0x2254('0x2b'))){_0x51b578[_0x2254('0x10')]=qs[_0x2254('0x10')](_0x13522d[_0x2254('0x24')][_0x2254('0x10')]);_0x51b578['offset']=qs[_0x2254('0x2c')](_0x13522d[_0x2254('0x24')]['offset']);}_0x51b578[_0x2254('0x2d')]=qs[_0x2254('0x2e')](_0x13522d[_0x2254('0x24')][_0x2254('0x2e')]);_0x51b578['where']=qs['filters'](_[_0x2254('0x2f')](_0x13522d['query'],_0x4a8274[_0x2254('0x26')]),_0x4f6877);if(_0x13522d[_0x2254('0x24')][_0x2254('0x30')]){_0x51b578[_0x2254('0x31')]=_[_0x2254('0x32')](_0x51b578[_0x2254('0x31')],{'$or':_[_0x2254('0x1e')](_0x4f6877,function(_0x51f235){if(_0x51f235[_0x2254('0x33')]!==_0x2254('0x34')){var _0x32d2ea={};_0x32d2ea[_0x51f235[_0x2254('0x1b')]]={'$like':'%'+_0x13522d[_0x2254('0x24')][_0x2254('0x30')]+'%'};return _0x32d2ea;}})});}_0x51b578=_[_0x2254('0x32')]({},_0x51b578,_0x13522d[_0x2254('0x35')]);var _0x122314={'where':_0x51b578[_0x2254('0x31')]};return db['SquareProject'][_0x2254('0x11')](_0x122314)[_0x2254('0x14')](function(_0x31d845){_0x1ada42[_0x2254('0x11')]=_0x31d845;if(_0x13522d['query'][_0x2254('0x36')]){_0x51b578[_0x2254('0x37')]=[{'all':!![]}];}return db[_0x2254('0x1f')][_0x2254('0x38')](_0x51b578);})[_0x2254('0x14')](function(_0x2602db){_0x1ada42[_0x2254('0x39')]=_0x2602db;return _0x1ada42;})[_0x2254('0x14')](respondWithFilteredResult(_0x1349c9,_0x51b578))['catch'](handleError(_0x1349c9,null));};exports[_0x2254('0x3a')]=function(_0x5c15d7,_0x1df9c3){var _0x19b580={'raw':![],'where':{'id':_0x5c15d7[_0x2254('0x3b')]['id']}},_0x10a7ac={};_0x10a7ac[_0x2254('0x23')]=_[_0x2254('0x25')](db[_0x2254('0x1f')]['rawAttributes']);_0x10a7ac[_0x2254('0x24')]=_[_0x2254('0x25')](_0x5c15d7[_0x2254('0x24')]);_0x10a7ac[_0x2254('0x26')]=_[_0x2254('0x27')](_0x10a7ac['model'],_0x10a7ac[_0x2254('0x24')]);_0x19b580[_0x2254('0x28')]=_[_0x2254('0x27')](_0x10a7ac[_0x2254('0x23')],qs[_0x2254('0x29')](_0x5c15d7['query'][_0x2254('0x29')]));_0x19b580['attributes']=_0x19b580[_0x2254('0x28')][_0x2254('0x3c')]?_0x19b580[_0x2254('0x28')]:_0x10a7ac[_0x2254('0x23')];if(_0x5c15d7[_0x2254('0x24')][_0x2254('0x36')]){_0x19b580[_0x2254('0x37')]=[{'all':!![]}];}_0x19b580=_[_0x2254('0x32')]({},_0x19b580,_0x5c15d7[_0x2254('0x35')]);return db[_0x2254('0x1f')][_0x2254('0x3d')](_0x19b580)[_0x2254('0x14')](handleEntityNotFound(_0x1df9c3,null))[_0x2254('0x14')](respondWithResult(_0x1df9c3,null))['catch'](handleError(_0x1df9c3,null));};exports[_0x2254('0x3e')]=function(_0x1ac370,_0x2c5609){return db['SquareProject'][_0x2254('0x3e')](_0x1ac370[_0x2254('0x3f')],{})[_0x2254('0x14')](function(_0xfdb855){var _0x2e6603=_0x1ac370[_0x2254('0x40')][_0x2254('0x41')]({'plain':!![]});if(!_0x2e6603)throw new Error(_0x2254('0x42'));if(_0x2e6603[_0x2254('0x43')]==='user'){var _0x239ba0=_0xfdb855[_0x2254('0x41')]({'plain':!![]});var _0x2c3055=_0x2254('0x16');return db[_0x2254('0x44')][_0x2254('0x3d')]({'where':{'name':_0x2c3055,'userProfileId':_0x2e6603[_0x2254('0x45')]},'raw':!![]})[_0x2254('0x14')](function(_0x3ac691){if(_0x3ac691&&_0x3ac691[_0x2254('0x46')]===0x0){return db['UserProfileResource'][_0x2254('0x3e')]({'name':_0x239ba0[_0x2254('0x1b')],'resourceId':_0x239ba0['id'],'type':_0x3ac691['name'],'sectionId':_0x3ac691['id']},{})[_0x2254('0x14')](function(){return _0xfdb855;});}else{return _0xfdb855;}})[_0x2254('0x47')](function(_0x12e2ff){logger[_0x2254('0x48')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x12e2ff);throw _0x12e2ff;});}return _0xfdb855;})[_0x2254('0x14')](respondWithResult(_0x2c5609,0xc9))[_0x2254('0x47')](handleError(_0x2c5609,null));};exports['update']=function(_0x26d01a,_0x3f0670){if(_0x26d01a[_0x2254('0x3f')]['id']){delete _0x26d01a[_0x2254('0x3f')]['id'];}return db['SquareProject'][_0x2254('0x3d')]({'where':{'id':_0x26d01a[_0x2254('0x3b')]['id']}})[_0x2254('0x14')](handleEntityNotFound(_0x3f0670,null))['then'](saveUpdates(_0x26d01a['body'],null))[_0x2254('0x14')](function(_0x366de4){if(!_0x366de4)return;var _0x5d6628=_0x366de4[_0x2254('0x41')]({'plain':!![]});return _0x5d6628;})['then'](function(_0x4addb0){var _0x44b300=new Redis(config[_0x2254('0x5')]);_0x44b300[_0x2254('0x18')](_0x2254('0x19'),JSON[_0x2254('0x1a')](_['pick'](_0x4addb0,['id','name',_0x2254('0x49')])));return _0x4addb0;})['then'](respondWithResult(_0x3f0670,null))[_0x2254('0x47')](handleError(_0x3f0670,null));};exports[_0x2254('0x15')]=function(_0x20bcc8,_0x2fe9a7){return db['SquareProject'][_0x2254('0x3d')]({'where':{'id':_0x20bcc8[_0x2254('0x3b')]['id']}})['then'](handleEntityNotFound(_0x2fe9a7,null))['then'](removeEntity(_0x2fe9a7,null))[_0x2254('0x47')](handleError(_0x2fe9a7,null));};exports['addUsers']=function(_0x2cc59c,_0x305ace){return db[_0x2254('0x1f')][_0x2254('0x3d')]({'where':{'id':_0x2cc59c[_0x2254('0x3b')]['id']}})['then'](handleEntityNotFound(_0x305ace,null))['then'](function(_0x39b1b1){if(_0x39b1b1){return _0x39b1b1['addUsers'](_0x2cc59c[_0x2254('0x3f')]['ids'],_['omit'](_0x2cc59c['body'],[_0x2254('0x4a'),'id'])||{});}})[_0x2254('0x14')](respondWithResult(_0x305ace,null))[_0x2254('0x47')](handleError(_0x305ace,null));};exports[_0x2254('0x4b')]=function(_0x13606e,_0x1cf757){return db[_0x2254('0x1f')][_0x2254('0x3d')]({'where':{'id':_0x13606e[_0x2254('0x3b')]['id']}})[_0x2254('0x14')](handleEntityNotFound(_0x1cf757,null))[_0x2254('0x14')](function(_0x44cfd9){if(_0x44cfd9){return _0x44cfd9[_0x2254('0x4b')](_0x13606e[_0x2254('0x24')][_0x2254('0x4a')])[_0x2254('0x14')](function(){if(_[_0x2254('0x4c')](_0x13606e[_0x2254('0x24')][_0x2254('0x4a')])){for(var _0x5b8909=0x0;_0x5b8909<_0x13606e[_0x2254('0x24')][_0x2254('0x4a')][_0x2254('0x3c')];_0x5b8909+=0x1){socket[_0x2254('0x4d')]('userSquareProject:remove',{'UserId':Number(_0x13606e['query'][_0x2254('0x4a')][_0x5b8909]),'SquareProjectId':Number(_0x13606e[_0x2254('0x3b')]['id'])});}}else{socket[_0x2254('0x4d')](_0x2254('0x4e'),{'UserId':Number(_0x13606e[_0x2254('0x24')]['ids']),'SquareProjectId':Number(_0x13606e[_0x2254('0x3b')]['id'])});}});}})[_0x2254('0x14')](respondWithStatusCode(_0x1cf757,null))[_0x2254('0x47')](handleError(_0x1cf757,null));};exports['getUsers']=function(_0x5ada4c,_0x21bcd4){var _0x5de1ee={};var _0x294931={};var _0x232d6c;var _0x5b269d;return db[_0x2254('0x1f')][_0x2254('0x4f')]({'where':{'id':_0x5ada4c['params']['id']}})[_0x2254('0x14')](handleEntityNotFound(_0x21bcd4,null))[_0x2254('0x14')](function(_0x4c6104){if(_0x4c6104){_0x232d6c=_0x4c6104;_0x294931['model']=_[_0x2254('0x25')](db[_0x2254('0x50')]['rawAttributes']);_0x294931['query']=_[_0x2254('0x25')](_0x5ada4c['query']);_0x294931[_0x2254('0x26')]=_['intersection'](_0x294931[_0x2254('0x23')],_0x294931[_0x2254('0x24')]);_0x5de1ee[_0x2254('0x28')]=_[_0x2254('0x27')](_0x294931['model'],qs[_0x2254('0x29')](_0x5ada4c['query'][_0x2254('0x29')]));_0x5de1ee[_0x2254('0x28')]=_0x5de1ee['attributes'][_0x2254('0x3c')]?_0x5de1ee[_0x2254('0x28')]:_0x294931['model'];_0x5de1ee[_0x2254('0x2d')]=qs[_0x2254('0x2e')](_0x5ada4c[_0x2254('0x24')][_0x2254('0x2e')]);_0x5de1ee['where']=qs[_0x2254('0x26')](_[_0x2254('0x2f')](_0x5ada4c['query'],_0x294931[_0x2254('0x26')]));if(_0x5ada4c[_0x2254('0x24')]['filter']){_0x5de1ee[_0x2254('0x31')]=_['merge'](_0x5de1ee[_0x2254('0x31')],{'$or':_['map'](_0x5de1ee[_0x2254('0x28')],function(_0x1f95b2){var _0x5e86d3={};_0x5e86d3[_0x1f95b2]={'$like':'%'+_0x5ada4c[_0x2254('0x24')]['filter']+'%'};return _0x5e86d3;})});}_0x5de1ee=_[_0x2254('0x32')]({},_0x5de1ee,_0x5ada4c[_0x2254('0x35')]);return _0x232d6c[_0x2254('0x51')](_0x5de1ee);}})['then'](function(_0x14c384){if(_0x14c384){_0x5b269d=_0x14c384['length'];if(!_0x5ada4c[_0x2254('0x24')][_0x2254('0x2a')]('nolimit')){_0x5de1ee['limit']=qs[_0x2254('0x10')](_0x5ada4c[_0x2254('0x24')][_0x2254('0x10')]);_0x5de1ee[_0x2254('0x2c')]=qs['offset'](_0x5ada4c[_0x2254('0x24')][_0x2254('0x2c')]);}return _0x232d6c[_0x2254('0x51')](_0x5de1ee);}})[_0x2254('0x14')](function(_0x4d1f16){if(_0x4d1f16){return _0x4d1f16?{'count':_0x5b269d,'rows':_0x4d1f16}:null;}})[_0x2254('0x14')](respondWithResult(_0x21bcd4,null))[_0x2254('0x47')](handleError(_0x21bcd4,null));};