7dadabaf8b86f11acdbb150748d1f33e26684307
[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 _0x4e84=['include','catch','show','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','SquareProjects','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','pick','production','../../components/parsers/qs','../../config/logger','api','../../config/environment','redis','defaults','socket.io-emitter','./squareProject.socket','register','status','json','limit','undefined','count','offset','set','update','then','get','UserProfileResource','destroy','publish','agi','stringify','end','sendStatus','error','stack','name','index','SquareProject','rawAttributes','fieldName','type','key','model','map','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','filter','where','merge','VIRTUAL','options','includeAll'];(function(_0x47b58b,_0x41a189){var _0x46bebe=function(_0x22bbfa){while(--_0x22bbfa){_0x47b58b['push'](_0x47b58b['shift']());}};_0x46bebe(++_0x41a189);}(_0x4e84,0x1f3));var _0x44e8=function(_0x41ed04,_0x12bedd){_0x41ed04=_0x41ed04-0x0;var _0x2ce605=_0x4e84[_0x41ed04];return _0x2ce605;};'use strict';var _=require('lodash');var Redis=require('ioredis');var qs=require(_0x44e8('0x0'));var logger=require(_0x44e8('0x1'))(_0x44e8('0x2'));var config=require(_0x44e8('0x3'));var db=require('../../mysqldb')['db'];config[_0x44e8('0x4')]=_[_0x44e8('0x5')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x44e8('0x6'))(new Redis(config['redis']));require(_0x44e8('0x7'))[_0x44e8('0x8')](socket);function respondWithResult(_0x4b91fa,_0x4d4478){_0x4d4478=_0x4d4478||0xc8;return function(_0x2e2990){if(_0x2e2990){return _0x4b91fa[_0x44e8('0x9')](_0x4d4478)[_0x44e8('0xa')](_0x2e2990);}};}function respondWithFilteredResult(_0x590e5b,_0x3e125e){return function(_0x2fff8e){if(_0x2fff8e){var _0x4ff629=typeof _0x3e125e['offset']==='undefined'&&typeof _0x3e125e[_0x44e8('0xb')]===_0x44e8('0xc');var _0x4051d1=_0x2fff8e[_0x44e8('0xd')];var _0x58737b=_0x4ff629?0x0:_0x3e125e['offset'];var _0x2c622e=_0x4ff629?_0x2fff8e[_0x44e8('0xd')]:_0x3e125e[_0x44e8('0xe')]+_0x3e125e[_0x44e8('0xb')];var _0x14c230;if(_0x2c622e>=_0x4051d1){_0x2c622e=_0x4051d1;_0x14c230=0xc8;}else{_0x14c230=0xce;}_0x590e5b['status'](_0x14c230);return _0x590e5b[_0x44e8('0xf')]('Content-Range',_0x58737b+'-'+_0x2c622e+'/'+_0x4051d1)[_0x44e8('0xa')](_0x2fff8e);}return null;};}function saveUpdates(_0x38dbcb){return function(_0x3a921f){if(_0x3a921f){return _0x3a921f[_0x44e8('0x10')](_0x38dbcb)[_0x44e8('0x11')](function(_0x4d9689){return _0x4d9689;});}return null;};}function removeEntity(_0x2e6042){return function(_0x27452d){if(_0x27452d){return _0x27452d['destroy']()[_0x44e8('0x11')](function(){var _0x176fa4=_0x27452d[_0x44e8('0x12')]({'plain':!![]});var _0x5e74b6='SquareProjects';return db[_0x44e8('0x13')][_0x44e8('0x14')]({'where':{'type':_0x5e74b6,'resourceId':_0x176fa4['id']}})['then'](function(){return _0x27452d;});})[_0x44e8('0x11')](function(){var _0x284666=new Redis(config[_0x44e8('0x4')]);_0x284666[_0x44e8('0x15')](_0x44e8('0x16'),JSON[_0x44e8('0x17')]({'id':_0x27452d['id'],'deleted':!![]}));})[_0x44e8('0x11')](function(){_0x2e6042['status'](0xcc)[_0x44e8('0x18')]();});}};}function handleEntityNotFound(_0x315fd4){return function(_0x298ada){if(!_0x298ada){_0x315fd4[_0x44e8('0x19')](0x194);}return _0x298ada;};}function handleError(_0x113eba,_0x342232){_0x342232=_0x342232||0x1f4;return function(_0xeffeac){logger[_0x44e8('0x1a')](_0xeffeac[_0x44e8('0x1b')]);if(_0xeffeac[_0x44e8('0x1c')]){delete _0xeffeac['name'];}_0x113eba['status'](_0x342232)['send'](_0xeffeac);};}exports[_0x44e8('0x1d')]=function(_0x37a22c,_0x1d9022){var _0x3c150c={},_0x1602d5={},_0x371c04={'count':0x0,'rows':[]};var _0x27df64=_['map'](db[_0x44e8('0x1e')][_0x44e8('0x1f')],function(_0x15c867){return{'name':_0x15c867[_0x44e8('0x20')],'type':_0x15c867[_0x44e8('0x21')][_0x44e8('0x22')]};});_0x1602d5[_0x44e8('0x23')]=_[_0x44e8('0x24')](_0x27df64,_0x44e8('0x1c'));_0x1602d5['query']=_[_0x44e8('0x25')](_0x37a22c[_0x44e8('0x26')]);_0x1602d5[_0x44e8('0x27')]=_[_0x44e8('0x28')](_0x1602d5[_0x44e8('0x23')],_0x1602d5[_0x44e8('0x26')]);_0x3c150c[_0x44e8('0x29')]=_[_0x44e8('0x28')](_0x1602d5[_0x44e8('0x23')],qs[_0x44e8('0x2a')](_0x37a22c[_0x44e8('0x26')][_0x44e8('0x2a')]));_0x3c150c[_0x44e8('0x29')]=_0x3c150c[_0x44e8('0x29')][_0x44e8('0x2b')]?_0x3c150c[_0x44e8('0x29')]:_0x1602d5['model'];if(!_0x37a22c[_0x44e8('0x26')][_0x44e8('0x2c')](_0x44e8('0x2d'))){_0x3c150c['limit']=qs[_0x44e8('0xb')](_0x37a22c['query'][_0x44e8('0xb')]);_0x3c150c[_0x44e8('0xe')]=qs[_0x44e8('0xe')](_0x37a22c[_0x44e8('0x26')][_0x44e8('0xe')]);}_0x3c150c['order']=qs['sort'](_0x37a22c[_0x44e8('0x26')][_0x44e8('0x2e')]);_0x3c150c['where']=qs[_0x44e8('0x27')](_['pick'](_0x37a22c['query'],_0x1602d5[_0x44e8('0x27')]),_0x27df64);if(_0x37a22c[_0x44e8('0x26')][_0x44e8('0x2f')]){_0x3c150c[_0x44e8('0x30')]=_[_0x44e8('0x31')](_0x3c150c[_0x44e8('0x30')],{'$or':_[_0x44e8('0x24')](_0x27df64,function(_0x13b7f9){if(_0x13b7f9[_0x44e8('0x21')]!==_0x44e8('0x32')){var _0xf694d2={};_0xf694d2[_0x13b7f9[_0x44e8('0x1c')]]={'$like':'%'+_0x37a22c['query'][_0x44e8('0x2f')]+'%'};return _0xf694d2;}})});}_0x3c150c=_['merge']({},_0x3c150c,_0x37a22c[_0x44e8('0x33')]);var _0x3cef5f={'where':_0x3c150c['where']};return db[_0x44e8('0x1e')][_0x44e8('0xd')](_0x3cef5f)[_0x44e8('0x11')](function(_0x4a6d4f){_0x371c04['count']=_0x4a6d4f;if(_0x37a22c[_0x44e8('0x26')][_0x44e8('0x34')]){_0x3c150c[_0x44e8('0x35')]=[{'all':!![]}];}return db[_0x44e8('0x1e')]['findAll'](_0x3c150c);})[_0x44e8('0x11')](function(_0x112265){_0x371c04['rows']=_0x112265;return _0x371c04;})['then'](respondWithFilteredResult(_0x1d9022,_0x3c150c))[_0x44e8('0x36')](handleError(_0x1d9022,null));};exports[_0x44e8('0x37')]=function(_0x2175d5,_0x22816a){var _0x3dd397={'raw':![],'where':{'id':_0x2175d5['params']['id']}},_0x38ca9c={};_0x38ca9c[_0x44e8('0x23')]=_[_0x44e8('0x25')](db[_0x44e8('0x1e')][_0x44e8('0x1f')]);_0x38ca9c[_0x44e8('0x26')]=_['keys'](_0x2175d5[_0x44e8('0x26')]);_0x38ca9c['filters']=_['intersection'](_0x38ca9c[_0x44e8('0x23')],_0x38ca9c[_0x44e8('0x26')]);_0x3dd397['attributes']=_[_0x44e8('0x28')](_0x38ca9c[_0x44e8('0x23')],qs[_0x44e8('0x2a')](_0x2175d5['query']['fields']));_0x3dd397[_0x44e8('0x29')]=_0x3dd397[_0x44e8('0x29')][_0x44e8('0x2b')]?_0x3dd397['attributes']:_0x38ca9c[_0x44e8('0x23')];if(_0x2175d5[_0x44e8('0x26')][_0x44e8('0x34')]){_0x3dd397[_0x44e8('0x35')]=[{'all':!![]}];}_0x3dd397=_[_0x44e8('0x31')]({},_0x3dd397,_0x2175d5[_0x44e8('0x33')]);return db[_0x44e8('0x1e')][_0x44e8('0x38')](_0x3dd397)[_0x44e8('0x11')](handleEntityNotFound(_0x22816a,null))[_0x44e8('0x11')](respondWithResult(_0x22816a,null))['catch'](handleError(_0x22816a,null));};exports[_0x44e8('0x39')]=function(_0x3cda24,_0x4a773a){return db[_0x44e8('0x1e')]['create'](_0x3cda24[_0x44e8('0x3a')],{})[_0x44e8('0x11')](function(_0x88bfef){var _0x2fa6ec=_0x3cda24[_0x44e8('0x3b')][_0x44e8('0x12')]({'plain':!![]});if(!_0x2fa6ec)throw new Error(_0x44e8('0x3c'));if(_0x2fa6ec[_0x44e8('0x3d')]===_0x44e8('0x3b')){var _0x34f927=_0x88bfef[_0x44e8('0x12')]({'plain':!![]});var _0x5f6ad6=_0x44e8('0x3e');return db[_0x44e8('0x3f')][_0x44e8('0x38')]({'where':{'name':_0x5f6ad6,'userProfileId':_0x2fa6ec[_0x44e8('0x40')]},'raw':!![]})[_0x44e8('0x11')](function(_0x268664){if(_0x268664&&_0x268664[_0x44e8('0x41')]===0x0){return db['UserProfileResource'][_0x44e8('0x39')]({'name':_0x34f927['name'],'resourceId':_0x34f927['id'],'type':_0x268664[_0x44e8('0x1c')],'sectionId':_0x268664['id']},{})[_0x44e8('0x11')](function(){return _0x88bfef;});}else{return _0x88bfef;}})[_0x44e8('0x36')](function(_0xb01723){logger[_0x44e8('0x1a')](_0x44e8('0x42'),_0xb01723);throw _0xb01723;});}return _0x88bfef;})['then'](respondWithResult(_0x4a773a,0xc9))[_0x44e8('0x36')](handleError(_0x4a773a,null));};exports[_0x44e8('0x10')]=function(_0x163df5,_0x48ecc9){if(_0x163df5[_0x44e8('0x3a')]['id']){delete _0x163df5[_0x44e8('0x3a')]['id'];}return db[_0x44e8('0x1e')][_0x44e8('0x38')]({'where':{'id':_0x163df5['params']['id']}})[_0x44e8('0x11')](handleEntityNotFound(_0x48ecc9,null))[_0x44e8('0x11')](saveUpdates(_0x163df5[_0x44e8('0x3a')],null))[_0x44e8('0x11')](function(_0x178ebc){if(!_0x178ebc)return;var _0x27e381=_0x178ebc['get']({'plain':!![]});return _0x27e381;})[_0x44e8('0x11')](function(_0x295551){var _0x12cd91=new Redis(config[_0x44e8('0x4')]);_0x12cd91[_0x44e8('0x15')](_0x44e8('0x16'),JSON[_0x44e8('0x17')](_[_0x44e8('0x43')](_0x295551,['id','name',_0x44e8('0x44')])));return _0x295551;})[_0x44e8('0x11')](respondWithResult(_0x48ecc9,null))[_0x44e8('0x36')](handleError(_0x48ecc9,null));};exports[_0x44e8('0x14')]=function(_0x55934c,_0x23cb22){return db[_0x44e8('0x1e')]['find']({'where':{'id':_0x55934c['params']['id']}})[_0x44e8('0x11')](handleEntityNotFound(_0x23cb22,null))[_0x44e8('0x11')](removeEntity(_0x23cb22,null))[_0x44e8('0x36')](handleError(_0x23cb22,null));};