85a88f41bff9da0c12de94257919250fe30f31ca
[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 _0x4edc=['pick','filters','filter','merge','SquareProject','includeAll','include','rows','catch','params','options','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','error','update','publish','production','lodash','ioredis','../../components/parsers/qs','../../config/logger','api','../../mysqldb','redis','defaults','localhost','./squareProject.socket','register','status','json','limit','undefined','count','offset','set','Content-Range','then','destroy','get','SquareProjects','agi','stringify','end','sendStatus','name','index','map','rawAttributes','fieldName','type','key','query','keys','intersection','attributes','model','fields','nolimit','order','sort','where'];(function(_0x2dc7c9,_0x3a15f8){var _0x3e6536=function(_0x312829){while(--_0x312829){_0x2dc7c9['push'](_0x2dc7c9['shift']());}};_0x3e6536(++_0x3a15f8);}(_0x4edc,0xe0));var _0xc4ed=function(_0x4e9d3c,_0x1f4b98){_0x4e9d3c=_0x4e9d3c-0x0;var _0x2d0825=_0x4edc[_0x4e9d3c];return _0x2d0825;};'use strict';var _=require(_0xc4ed('0x0'));var Redis=require(_0xc4ed('0x1'));var qs=require(_0xc4ed('0x2'));var logger=require(_0xc4ed('0x3'))(_0xc4ed('0x4'));var config=require('../../config/environment');var db=require(_0xc4ed('0x5'))['db'];config[_0xc4ed('0x6')]=_[_0xc4ed('0x7')](config[_0xc4ed('0x6')],{'host':_0xc4ed('0x8'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xc4ed('0x6')]));require(_0xc4ed('0x9'))[_0xc4ed('0xa')](socket);function respondWithResult(_0x14bc18,_0x258592){_0x258592=_0x258592||0xc8;return function(_0x204ff4){if(_0x204ff4){return _0x14bc18[_0xc4ed('0xb')](_0x258592)[_0xc4ed('0xc')](_0x204ff4);}};}function respondWithFilteredResult(_0x537123,_0x24a59f){return function(_0x2a4af9){if(_0x2a4af9){var _0x210e8b=typeof _0x24a59f['offset']==='undefined'&&typeof _0x24a59f[_0xc4ed('0xd')]===_0xc4ed('0xe');var _0x408114=_0x2a4af9[_0xc4ed('0xf')];var _0x4445d1=_0x210e8b?0x0:_0x24a59f[_0xc4ed('0x10')];var _0x4f8ece=_0x210e8b?_0x2a4af9[_0xc4ed('0xf')]:_0x24a59f[_0xc4ed('0x10')]+_0x24a59f[_0xc4ed('0xd')];var _0x554190;if(_0x4f8ece>=_0x408114){_0x4f8ece=_0x408114;_0x554190=0xc8;}else{_0x554190=0xce;}_0x537123['status'](_0x554190);return _0x537123[_0xc4ed('0x11')](_0xc4ed('0x12'),_0x4445d1+'-'+_0x4f8ece+'/'+_0x408114)[_0xc4ed('0xc')](_0x2a4af9);}return null;};}function saveUpdates(_0xa69781){return function(_0x599011){if(_0x599011){return _0x599011['update'](_0xa69781)[_0xc4ed('0x13')](function(_0x44075d){return _0x44075d;});}return null;};}function removeEntity(_0x3112a0){return function(_0x4596fe){if(_0x4596fe){return _0x4596fe[_0xc4ed('0x14')]()[_0xc4ed('0x13')](function(){var _0x14439b=_0x4596fe[_0xc4ed('0x15')]({'plain':!![]});var _0x167df1=_0xc4ed('0x16');return db['UserProfileResource'][_0xc4ed('0x14')]({'where':{'type':_0x167df1,'resourceId':_0x14439b['id']}})[_0xc4ed('0x13')](function(){return _0x4596fe;});})['then'](function(){var _0x4c5bc3=new Redis(config['redis']);_0x4c5bc3['publish'](_0xc4ed('0x17'),JSON[_0xc4ed('0x18')]({'id':_0x4596fe['id'],'deleted':!![]}));})['then'](function(){_0x3112a0[_0xc4ed('0xb')](0xcc)[_0xc4ed('0x19')]();});}};}function handleEntityNotFound(_0x2e6411){return function(_0x1085ff){if(!_0x1085ff){_0x2e6411[_0xc4ed('0x1a')](0x194);}return _0x1085ff;};}function handleError(_0x17cd36,_0x525cbd){_0x525cbd=_0x525cbd||0x1f4;return function(_0x26ff90){logger['error'](_0x26ff90['stack']);if(_0x26ff90[_0xc4ed('0x1b')]){delete _0x26ff90[_0xc4ed('0x1b')];}_0x17cd36['status'](_0x525cbd)['send'](_0x26ff90);};}exports[_0xc4ed('0x1c')]=function(_0xc998e6,_0x4fc5cb){var _0xca1b13={},_0x2b5606={},_0xd5a2ea={'count':0x0,'rows':[]};var _0x1af834=_[_0xc4ed('0x1d')](db['SquareProject'][_0xc4ed('0x1e')],function(_0x13f146){return{'name':_0x13f146[_0xc4ed('0x1f')],'type':_0x13f146[_0xc4ed('0x20')][_0xc4ed('0x21')]};});_0x2b5606['model']=_[_0xc4ed('0x1d')](_0x1af834,_0xc4ed('0x1b'));_0x2b5606[_0xc4ed('0x22')]=_[_0xc4ed('0x23')](_0xc998e6[_0xc4ed('0x22')]);_0x2b5606['filters']=_[_0xc4ed('0x24')](_0x2b5606['model'],_0x2b5606[_0xc4ed('0x22')]);_0xca1b13[_0xc4ed('0x25')]=_[_0xc4ed('0x24')](_0x2b5606[_0xc4ed('0x26')],qs[_0xc4ed('0x27')](_0xc998e6['query'][_0xc4ed('0x27')]));_0xca1b13[_0xc4ed('0x25')]=_0xca1b13['attributes']['length']?_0xca1b13[_0xc4ed('0x25')]:_0x2b5606[_0xc4ed('0x26')];if(!_0xc998e6[_0xc4ed('0x22')]['hasOwnProperty'](_0xc4ed('0x28'))){_0xca1b13['limit']=qs[_0xc4ed('0xd')](_0xc998e6[_0xc4ed('0x22')][_0xc4ed('0xd')]);_0xca1b13[_0xc4ed('0x10')]=qs[_0xc4ed('0x10')](_0xc998e6['query'][_0xc4ed('0x10')]);}_0xca1b13[_0xc4ed('0x29')]=qs['sort'](_0xc998e6[_0xc4ed('0x22')][_0xc4ed('0x2a')]);_0xca1b13[_0xc4ed('0x2b')]=qs['filters'](_[_0xc4ed('0x2c')](_0xc998e6[_0xc4ed('0x22')],_0x2b5606[_0xc4ed('0x2d')]),_0x1af834);if(_0xc998e6[_0xc4ed('0x22')][_0xc4ed('0x2e')]){_0xca1b13[_0xc4ed('0x2b')]=_['merge'](_0xca1b13[_0xc4ed('0x2b')],{'$or':_['map'](_0x1af834,function(_0x25b91d){if(_0x25b91d[_0xc4ed('0x20')]!=='VIRTUAL'){var _0x80d74f={};_0x80d74f[_0x25b91d['name']]={'$like':'%'+_0xc998e6[_0xc4ed('0x22')][_0xc4ed('0x2e')]+'%'};return _0x80d74f;}})});}_0xca1b13=_[_0xc4ed('0x2f')]({},_0xca1b13,_0xc998e6['options']);var _0xad3e0b={'where':_0xca1b13[_0xc4ed('0x2b')]};return db[_0xc4ed('0x30')][_0xc4ed('0xf')](_0xad3e0b)[_0xc4ed('0x13')](function(_0x1bd4f8){_0xd5a2ea[_0xc4ed('0xf')]=_0x1bd4f8;if(_0xc998e6[_0xc4ed('0x22')][_0xc4ed('0x31')]){_0xca1b13[_0xc4ed('0x32')]=[{'all':!![]}];}return db[_0xc4ed('0x30')]['findAll'](_0xca1b13);})[_0xc4ed('0x13')](function(_0x13a4d5){_0xd5a2ea[_0xc4ed('0x33')]=_0x13a4d5;return _0xd5a2ea;})[_0xc4ed('0x13')](respondWithFilteredResult(_0x4fc5cb,_0xca1b13))[_0xc4ed('0x34')](handleError(_0x4fc5cb,null));};exports['show']=function(_0x49e63f,_0x206b1d){var _0x2a90f4={'raw':![],'where':{'id':_0x49e63f[_0xc4ed('0x35')]['id']}},_0x38fe21={};_0x38fe21[_0xc4ed('0x26')]=_[_0xc4ed('0x23')](db[_0xc4ed('0x30')][_0xc4ed('0x1e')]);_0x38fe21['query']=_[_0xc4ed('0x23')](_0x49e63f[_0xc4ed('0x22')]);_0x38fe21[_0xc4ed('0x2d')]=_[_0xc4ed('0x24')](_0x38fe21['model'],_0x38fe21[_0xc4ed('0x22')]);_0x2a90f4['attributes']=_['intersection'](_0x38fe21[_0xc4ed('0x26')],qs[_0xc4ed('0x27')](_0x49e63f['query'][_0xc4ed('0x27')]));_0x2a90f4[_0xc4ed('0x25')]=_0x2a90f4[_0xc4ed('0x25')]['length']?_0x2a90f4[_0xc4ed('0x25')]:_0x38fe21['model'];if(_0x49e63f['query']['includeAll']){_0x2a90f4['include']=[{'all':!![]}];}_0x2a90f4=_[_0xc4ed('0x2f')]({},_0x2a90f4,_0x49e63f[_0xc4ed('0x36')]);return db[_0xc4ed('0x30')][_0xc4ed('0x37')](_0x2a90f4)[_0xc4ed('0x13')](handleEntityNotFound(_0x206b1d,null))[_0xc4ed('0x13')](respondWithResult(_0x206b1d,null))[_0xc4ed('0x34')](handleError(_0x206b1d,null));};exports[_0xc4ed('0x38')]=function(_0x5e8338,_0x462537){return db[_0xc4ed('0x30')][_0xc4ed('0x38')](_0x5e8338[_0xc4ed('0x39')],{})[_0xc4ed('0x13')](function(_0x363fc8){var _0xa07866=_0x5e8338[_0xc4ed('0x3a')]['get']({'plain':!![]});if(!_0xa07866)throw new Error(_0xc4ed('0x3b'));if(_0xa07866[_0xc4ed('0x3c')]===_0xc4ed('0x3a')){var _0xfeaeef=_0x363fc8['get']({'plain':!![]});var _0x22f7e2=_0xc4ed('0x16');return db[_0xc4ed('0x3d')][_0xc4ed('0x37')]({'where':{'name':_0x22f7e2,'userProfileId':_0xa07866['userProfileId']},'raw':!![]})[_0xc4ed('0x13')](function(_0x5f3a30){if(_0x5f3a30&&_0x5f3a30[_0xc4ed('0x3e')]===0x0){return db['UserProfileResource'][_0xc4ed('0x38')]({'name':_0xfeaeef[_0xc4ed('0x1b')],'resourceId':_0xfeaeef['id'],'type':_0x5f3a30[_0xc4ed('0x1b')],'sectionId':_0x5f3a30['id']},{})['then'](function(){return _0x363fc8;});}else{return _0x363fc8;}})[_0xc4ed('0x34')](function(_0x4eda27){logger[_0xc4ed('0x3f')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4eda27);throw _0x4eda27;});}return _0x363fc8;})[_0xc4ed('0x13')](respondWithResult(_0x462537,0xc9))[_0xc4ed('0x34')](handleError(_0x462537,null));};exports[_0xc4ed('0x40')]=function(_0x2ee116,_0x3889df){if(_0x2ee116[_0xc4ed('0x39')]['id']){delete _0x2ee116[_0xc4ed('0x39')]['id'];}return db[_0xc4ed('0x30')]['find']({'where':{'id':_0x2ee116[_0xc4ed('0x35')]['id']}})['then'](handleEntityNotFound(_0x3889df,null))[_0xc4ed('0x13')](saveUpdates(_0x2ee116[_0xc4ed('0x39')],null))['then'](function(_0x58792f){if(!_0x58792f)return;var _0x2ef33a=_0x58792f[_0xc4ed('0x15')]({'plain':!![]});return _0x2ef33a;})[_0xc4ed('0x13')](function(_0x44c95b){var _0x3793a7=new Redis(config[_0xc4ed('0x6')]);_0x3793a7[_0xc4ed('0x41')]('agi',JSON[_0xc4ed('0x18')](_['pick'](_0x44c95b,['id',_0xc4ed('0x1b'),_0xc4ed('0x42')])));return _0x44c95b;})[_0xc4ed('0x13')](respondWithResult(_0x3889df,null))[_0xc4ed('0x34')](handleError(_0x3889df,null));};exports[_0xc4ed('0x14')]=function(_0x377b6d,_0x16a9e5){return db[_0xc4ed('0x30')]['find']({'where':{'id':_0x377b6d['params']['id']}})[_0xc4ed('0x13')](handleEntityNotFound(_0x16a9e5,null))[_0xc4ed('0x13')](removeEntity(_0x16a9e5,null))[_0xc4ed('0x34')](handleError(_0x16a9e5,null));};