f91650de3a6157738d222e4639be45cb71adcc0d
[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 _0x1d69=['length','create','body','user','role','UserProfileSection','find','userProfileId','autoAssociation','production','params','lodash','api','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','json','offset','limit','status','update','then','destroy','get','SquareProjects','UserProfileResource','publish','stringify','sendStatus','error','send','index','map','SquareProject','rawAttributes','fieldName','type','model','name','keys','query','filters','intersection','attributes','fields','hasOwnProperty','order','sort','where','pick','filter','merge','options','count','include','findAll','rows','catch'];(function(_0x22de84,_0x56142b){var _0x54fc49=function(_0x3be7bc){while(--_0x3be7bc){_0x22de84['push'](_0x22de84['shift']());}};_0x54fc49(++_0x56142b);}(_0x1d69,0x1bd));var _0x91d6=function(_0xdbd4f7,_0x4e3bdd){_0xdbd4f7=_0xdbd4f7-0x0;var _0x5c3f9d=_0x1d69[_0xdbd4f7];return _0x5c3f9d;};'use strict';var _=require(_0x91d6('0x0'));var Redis=require('ioredis');var qs=require('../../components/parsers/qs');var logger=require('../../config/logger')(_0x91d6('0x1'));var config=require(_0x91d6('0x2'));var db=require(_0x91d6('0x3'))['db'];config[_0x91d6('0x4')]=_[_0x91d6('0x5')](config[_0x91d6('0x4')],{'host':_0x91d6('0x6'),'port':0x18eb});var socket=require(_0x91d6('0x7'))(new Redis(config[_0x91d6('0x4')]));require('./squareProject.socket')[_0x91d6('0x8')](socket);function respondWithResult(_0x36b626,_0x3ed972){_0x3ed972=_0x3ed972||0xc8;return function(_0x462863){if(_0x462863){return _0x36b626['status'](_0x3ed972)[_0x91d6('0x9')](_0x462863);}};}function respondWithFilteredResult(_0x8e835b,_0x39b46b){return function(_0x3dfbaf){if(_0x3dfbaf){var _0x2d5921=typeof _0x39b46b[_0x91d6('0xa')]==='undefined'&&typeof _0x39b46b[_0x91d6('0xb')]==='undefined';var _0x423457=_0x3dfbaf['count'];var _0x4440d8=_0x2d5921?0x0:_0x39b46b[_0x91d6('0xa')];var _0x229812=_0x2d5921?_0x3dfbaf['count']:_0x39b46b[_0x91d6('0xa')]+_0x39b46b['limit'];var _0x67c513;if(_0x229812>=_0x423457){_0x229812=_0x423457;_0x67c513=0xc8;}else{_0x67c513=0xce;}_0x8e835b[_0x91d6('0xc')](_0x67c513);return _0x8e835b['set']('Content-Range',_0x4440d8+'-'+_0x229812+'/'+_0x423457)[_0x91d6('0x9')](_0x3dfbaf);}return null;};}function saveUpdates(_0x32c117){return function(_0x34f4fc){if(_0x34f4fc){return _0x34f4fc[_0x91d6('0xd')](_0x32c117)[_0x91d6('0xe')](function(_0x122473){return _0x122473;});}return null;};}function removeEntity(_0x4857e5){return function(_0x288daf){if(_0x288daf){return _0x288daf[_0x91d6('0xf')]()['then'](function(){var _0x28ff0f=_0x288daf[_0x91d6('0x10')]({'plain':!![]});var _0x7a602d=_0x91d6('0x11');return db[_0x91d6('0x12')][_0x91d6('0xf')]({'where':{'type':_0x7a602d,'resourceId':_0x28ff0f['id']}})[_0x91d6('0xe')](function(){return _0x288daf;});})[_0x91d6('0xe')](function(){var _0x1e6ac0=new Redis(config[_0x91d6('0x4')]);_0x1e6ac0[_0x91d6('0x13')]('agi',JSON[_0x91d6('0x14')]({'id':_0x288daf['id'],'deleted':!![]}));})[_0x91d6('0xe')](function(){_0x4857e5[_0x91d6('0xc')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3de031){return function(_0xd5aa8f){if(!_0xd5aa8f){_0x3de031[_0x91d6('0x15')](0x194);}return _0xd5aa8f;};}function handleError(_0x107c1a,_0x36812a){_0x36812a=_0x36812a||0x1f4;return function(_0x43fdec){logger[_0x91d6('0x16')](_0x43fdec['stack']);if(_0x43fdec['name']){delete _0x43fdec['name'];}_0x107c1a[_0x91d6('0xc')](_0x36812a)[_0x91d6('0x17')](_0x43fdec);};}exports[_0x91d6('0x18')]=function(_0x1f3944,_0x539ceb){var _0x3cfb69={},_0x57200d={},_0x51e5f1={'count':0x0,'rows':[]};var _0x5d83bb=_[_0x91d6('0x19')](db[_0x91d6('0x1a')][_0x91d6('0x1b')],function(_0x265202){return{'name':_0x265202[_0x91d6('0x1c')],'type':_0x265202[_0x91d6('0x1d')]['key']};});_0x57200d[_0x91d6('0x1e')]=_['map'](_0x5d83bb,_0x91d6('0x1f'));_0x57200d['query']=_[_0x91d6('0x20')](_0x1f3944[_0x91d6('0x21')]);_0x57200d[_0x91d6('0x22')]=_[_0x91d6('0x23')](_0x57200d[_0x91d6('0x1e')],_0x57200d[_0x91d6('0x21')]);_0x3cfb69[_0x91d6('0x24')]=_['intersection'](_0x57200d[_0x91d6('0x1e')],qs[_0x91d6('0x25')](_0x1f3944[_0x91d6('0x21')][_0x91d6('0x25')]));_0x3cfb69[_0x91d6('0x24')]=_0x3cfb69['attributes']['length']?_0x3cfb69[_0x91d6('0x24')]:_0x57200d[_0x91d6('0x1e')];if(!_0x1f3944[_0x91d6('0x21')][_0x91d6('0x26')]('nolimit')){_0x3cfb69['limit']=qs[_0x91d6('0xb')](_0x1f3944[_0x91d6('0x21')][_0x91d6('0xb')]);_0x3cfb69[_0x91d6('0xa')]=qs[_0x91d6('0xa')](_0x1f3944[_0x91d6('0x21')][_0x91d6('0xa')]);}_0x3cfb69[_0x91d6('0x27')]=qs[_0x91d6('0x28')](_0x1f3944[_0x91d6('0x21')][_0x91d6('0x28')]);_0x3cfb69[_0x91d6('0x29')]=qs['filters'](_[_0x91d6('0x2a')](_0x1f3944[_0x91d6('0x21')],_0x57200d[_0x91d6('0x22')]),_0x5d83bb);if(_0x1f3944['query'][_0x91d6('0x2b')]){_0x3cfb69['where']=_['merge'](_0x3cfb69[_0x91d6('0x29')],{'$or':_[_0x91d6('0x19')](_0x5d83bb,function(_0x1bc69d){if(_0x1bc69d['type']!=='VIRTUAL'){var _0x53736a={};_0x53736a[_0x1bc69d[_0x91d6('0x1f')]]={'$like':'%'+_0x1f3944[_0x91d6('0x21')][_0x91d6('0x2b')]+'%'};return _0x53736a;}})});}_0x3cfb69=_[_0x91d6('0x2c')]({},_0x3cfb69,_0x1f3944[_0x91d6('0x2d')]);var _0x88f1a9={'where':_0x3cfb69['where']};return db[_0x91d6('0x1a')][_0x91d6('0x2e')](_0x88f1a9)['then'](function(_0x18cd5e){_0x51e5f1[_0x91d6('0x2e')]=_0x18cd5e;if(_0x1f3944[_0x91d6('0x21')]['includeAll']){_0x3cfb69[_0x91d6('0x2f')]=[{'all':!![]}];}return db['SquareProject'][_0x91d6('0x30')](_0x3cfb69);})[_0x91d6('0xe')](function(_0x5aa9cc){_0x51e5f1[_0x91d6('0x31')]=_0x5aa9cc;return _0x51e5f1;})[_0x91d6('0xe')](respondWithFilteredResult(_0x539ceb,_0x3cfb69))[_0x91d6('0x32')](handleError(_0x539ceb,null));};exports['show']=function(_0x16eee7,_0x11ccc8){var _0x4fc791={'raw':![],'where':{'id':_0x16eee7['params']['id']}},_0x4719ee={};_0x4719ee[_0x91d6('0x1e')]=_[_0x91d6('0x20')](db[_0x91d6('0x1a')]['rawAttributes']);_0x4719ee['query']=_[_0x91d6('0x20')](_0x16eee7[_0x91d6('0x21')]);_0x4719ee['filters']=_[_0x91d6('0x23')](_0x4719ee[_0x91d6('0x1e')],_0x4719ee[_0x91d6('0x21')]);_0x4fc791[_0x91d6('0x24')]=_['intersection'](_0x4719ee[_0x91d6('0x1e')],qs[_0x91d6('0x25')](_0x16eee7[_0x91d6('0x21')][_0x91d6('0x25')]));_0x4fc791[_0x91d6('0x24')]=_0x4fc791[_0x91d6('0x24')][_0x91d6('0x33')]?_0x4fc791[_0x91d6('0x24')]:_0x4719ee[_0x91d6('0x1e')];if(_0x16eee7['query']['includeAll']){_0x4fc791[_0x91d6('0x2f')]=[{'all':!![]}];}_0x4fc791=_[_0x91d6('0x2c')]({},_0x4fc791,_0x16eee7[_0x91d6('0x2d')]);return db[_0x91d6('0x1a')]['find'](_0x4fc791)[_0x91d6('0xe')](handleEntityNotFound(_0x11ccc8,null))[_0x91d6('0xe')](respondWithResult(_0x11ccc8,null))['catch'](handleError(_0x11ccc8,null));};exports[_0x91d6('0x34')]=function(_0x334d78,_0xc5eab8){return db[_0x91d6('0x1a')][_0x91d6('0x34')](_0x334d78[_0x91d6('0x35')],{})[_0x91d6('0xe')](function(_0x59daa1){var _0x570fbc=_0x334d78[_0x91d6('0x36')][_0x91d6('0x10')]({'plain':!![]});if(!_0x570fbc)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x570fbc[_0x91d6('0x37')]===_0x91d6('0x36')){var _0x4fa8e6=_0x59daa1[_0x91d6('0x10')]({'plain':!![]});var _0x465672=_0x91d6('0x11');return db[_0x91d6('0x38')][_0x91d6('0x39')]({'where':{'name':_0x465672,'userProfileId':_0x570fbc[_0x91d6('0x3a')]},'raw':!![]})[_0x91d6('0xe')](function(_0x30f0d8){if(_0x30f0d8&&_0x30f0d8[_0x91d6('0x3b')]===0x0){return db[_0x91d6('0x12')][_0x91d6('0x34')]({'name':_0x4fa8e6[_0x91d6('0x1f')],'resourceId':_0x4fa8e6['id'],'type':_0x30f0d8[_0x91d6('0x1f')],'sectionId':_0x30f0d8['id']},{})['then'](function(){return _0x59daa1;});}else{return _0x59daa1;}})[_0x91d6('0x32')](function(_0x2b348b){logger[_0x91d6('0x16')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2b348b);throw _0x2b348b;});}return _0x59daa1;})[_0x91d6('0xe')](respondWithResult(_0xc5eab8,0xc9))[_0x91d6('0x32')](handleError(_0xc5eab8,null));};exports[_0x91d6('0xd')]=function(_0x159688,_0x3b87b7){if(_0x159688[_0x91d6('0x35')]['id']){delete _0x159688['body']['id'];}return db[_0x91d6('0x1a')][_0x91d6('0x39')]({'where':{'id':_0x159688['params']['id']}})[_0x91d6('0xe')](handleEntityNotFound(_0x3b87b7,null))[_0x91d6('0xe')](saveUpdates(_0x159688['body'],null))[_0x91d6('0xe')](function(_0x1398f6){if(!_0x1398f6)return;var _0x5847ff=_0x1398f6['get']({'plain':!![]});return _0x5847ff;})[_0x91d6('0xe')](function(_0x27010d){var _0x26c9cf=new Redis(config[_0x91d6('0x4')]);_0x26c9cf[_0x91d6('0x13')]('agi',JSON[_0x91d6('0x14')](_['pick'](_0x27010d,['id',_0x91d6('0x1f'),_0x91d6('0x3c')])));return _0x27010d;})['then'](respondWithResult(_0x3b87b7,null))[_0x91d6('0x32')](handleError(_0x3b87b7,null));};exports[_0x91d6('0xf')]=function(_0x2e8ec9,_0x3032f6){return db['SquareProject'][_0x91d6('0x39')]({'where':{'id':_0x2e8ec9[_0x91d6('0x3d')]['id']}})[_0x91d6('0xe')](handleEntityNotFound(_0x3032f6,null))[_0x91d6('0xe')](removeEntity(_0x3032f6,null))[_0x91d6('0x32')](handleError(_0x3032f6,null));};