c084a9cccd140244b531479f49d0880aa36f64ce
[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 _0x9308=['hasOwnProperty','order','sort','where','filters','pick','filter','merge','type','VIRTUAL','options','include','rows','catch','show','params','keys','rawAttributes','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','production','lodash','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','socket.io-emitter','./squareProject.socket','status','json','offset','undefined','count','limit','set','Content-Range','update','destroy','then','get','SquareProjects','UserProfileResource','publish','agi','stringify','end','sendStatus','error','stack','name','index','map','SquareProject','fieldName','model','query','intersection','attributes','fields','length'];(function(_0x44af02,_0x42bd22){var _0x1405c9=function(_0x1c3426){while(--_0x1c3426){_0x44af02['push'](_0x44af02['shift']());}};_0x1405c9(++_0x42bd22);}(_0x9308,0x138));var _0x8930=function(_0x42cae2,_0x284ef8){_0x42cae2=_0x42cae2-0x0;var _0x5f256f=_0x9308[_0x42cae2];return _0x5f256f;};'use strict';var _=require(_0x8930('0x0'));var Redis=require(_0x8930('0x1'));var qs=require(_0x8930('0x2'));var logger=require(_0x8930('0x3'))(_0x8930('0x4'));var config=require(_0x8930('0x5'));var db=require(_0x8930('0x6'))['db'];config[_0x8930('0x7')]=_[_0x8930('0x8')](config[_0x8930('0x7')],{'host':'localhost','port':0x18eb});var socket=require(_0x8930('0x9'))(new Redis(config[_0x8930('0x7')]));require(_0x8930('0xa'))['register'](socket);function respondWithResult(_0x47d309,_0x187b21){_0x187b21=_0x187b21||0xc8;return function(_0x4fba17){if(_0x4fba17){return _0x47d309[_0x8930('0xb')](_0x187b21)[_0x8930('0xc')](_0x4fba17);}};}function respondWithFilteredResult(_0x257782,_0x22a967){return function(_0x10467a){if(_0x10467a){var _0x1327a0=typeof _0x22a967[_0x8930('0xd')]==='undefined'&&typeof _0x22a967['limit']===_0x8930('0xe');var _0x27107a=_0x10467a[_0x8930('0xf')];var _0x3b77e9=_0x1327a0?0x0:_0x22a967['offset'];var _0x1fad99=_0x1327a0?_0x10467a[_0x8930('0xf')]:_0x22a967[_0x8930('0xd')]+_0x22a967[_0x8930('0x10')];var _0x56aa1a;if(_0x1fad99>=_0x27107a){_0x1fad99=_0x27107a;_0x56aa1a=0xc8;}else{_0x56aa1a=0xce;}_0x257782[_0x8930('0xb')](_0x56aa1a);return _0x257782[_0x8930('0x11')](_0x8930('0x12'),_0x3b77e9+'-'+_0x1fad99+'/'+_0x27107a)[_0x8930('0xc')](_0x10467a);}return null;};}function saveUpdates(_0x5a2a9e){return function(_0x1759b9){if(_0x1759b9){return _0x1759b9[_0x8930('0x13')](_0x5a2a9e)['then'](function(_0x2c143b){return _0x2c143b;});}return null;};}function removeEntity(_0x52100b){return function(_0x1e107d){if(_0x1e107d){return _0x1e107d[_0x8930('0x14')]()[_0x8930('0x15')](function(){var _0x2b53fc=_0x1e107d[_0x8930('0x16')]({'plain':!![]});var _0xb06e18=_0x8930('0x17');return db[_0x8930('0x18')]['destroy']({'where':{'type':_0xb06e18,'resourceId':_0x2b53fc['id']}})[_0x8930('0x15')](function(){return _0x1e107d;});})[_0x8930('0x15')](function(){var _0x32550a=new Redis(config[_0x8930('0x7')]);_0x32550a[_0x8930('0x19')](_0x8930('0x1a'),JSON[_0x8930('0x1b')]({'id':_0x1e107d['id'],'deleted':!![]}));})['then'](function(){_0x52100b[_0x8930('0xb')](0xcc)[_0x8930('0x1c')]();});}};}function handleEntityNotFound(_0x52bded){return function(_0xe80d84){if(!_0xe80d84){_0x52bded[_0x8930('0x1d')](0x194);}return _0xe80d84;};}function handleError(_0x53c71b,_0x45cb12){_0x45cb12=_0x45cb12||0x1f4;return function(_0x2dcc21){logger[_0x8930('0x1e')](_0x2dcc21[_0x8930('0x1f')]);if(_0x2dcc21[_0x8930('0x20')]){delete _0x2dcc21['name'];}_0x53c71b[_0x8930('0xb')](_0x45cb12)['send'](_0x2dcc21);};}exports[_0x8930('0x21')]=function(_0x25000d,_0x3b2633){var _0x4cc44d={},_0x503494={},_0x479c70={'count':0x0,'rows':[]};var _0x49918d=_[_0x8930('0x22')](db[_0x8930('0x23')]['rawAttributes'],function(_0x4b808f){return{'name':_0x4b808f[_0x8930('0x24')],'type':_0x4b808f['type']['key']};});_0x503494[_0x8930('0x25')]=_['map'](_0x49918d,_0x8930('0x20'));_0x503494[_0x8930('0x26')]=_['keys'](_0x25000d['query']);_0x503494['filters']=_[_0x8930('0x27')](_0x503494['model'],_0x503494[_0x8930('0x26')]);_0x4cc44d[_0x8930('0x28')]=_[_0x8930('0x27')](_0x503494[_0x8930('0x25')],qs['fields'](_0x25000d['query'][_0x8930('0x29')]));_0x4cc44d[_0x8930('0x28')]=_0x4cc44d[_0x8930('0x28')][_0x8930('0x2a')]?_0x4cc44d['attributes']:_0x503494['model'];if(!_0x25000d[_0x8930('0x26')][_0x8930('0x2b')]('nolimit')){_0x4cc44d['limit']=qs[_0x8930('0x10')](_0x25000d[_0x8930('0x26')][_0x8930('0x10')]);_0x4cc44d['offset']=qs[_0x8930('0xd')](_0x25000d[_0x8930('0x26')][_0x8930('0xd')]);}_0x4cc44d[_0x8930('0x2c')]=qs[_0x8930('0x2d')](_0x25000d[_0x8930('0x26')]['sort']);_0x4cc44d[_0x8930('0x2e')]=qs[_0x8930('0x2f')](_[_0x8930('0x30')](_0x25000d[_0x8930('0x26')],_0x503494[_0x8930('0x2f')]),_0x49918d);if(_0x25000d[_0x8930('0x26')][_0x8930('0x31')]){_0x4cc44d[_0x8930('0x2e')]=_[_0x8930('0x32')](_0x4cc44d[_0x8930('0x2e')],{'$or':_[_0x8930('0x22')](_0x49918d,function(_0x55a951){if(_0x55a951[_0x8930('0x33')]!==_0x8930('0x34')){var _0x3347f2={};_0x3347f2[_0x55a951[_0x8930('0x20')]]={'$like':'%'+_0x25000d[_0x8930('0x26')][_0x8930('0x31')]+'%'};return _0x3347f2;}})});}_0x4cc44d=_[_0x8930('0x32')]({},_0x4cc44d,_0x25000d[_0x8930('0x35')]);var _0xebc13b={'where':_0x4cc44d[_0x8930('0x2e')]};return db[_0x8930('0x23')]['count'](_0xebc13b)[_0x8930('0x15')](function(_0x377505){_0x479c70['count']=_0x377505;if(_0x25000d[_0x8930('0x26')]['includeAll']){_0x4cc44d[_0x8930('0x36')]=[{'all':!![]}];}return db[_0x8930('0x23')]['findAll'](_0x4cc44d);})['then'](function(_0x58f56a){_0x479c70[_0x8930('0x37')]=_0x58f56a;return _0x479c70;})['then'](respondWithFilteredResult(_0x3b2633,_0x4cc44d))[_0x8930('0x38')](handleError(_0x3b2633,null));};exports[_0x8930('0x39')]=function(_0x5d9cdc,_0x26c9bf){var _0x30f8b3={'raw':![],'where':{'id':_0x5d9cdc[_0x8930('0x3a')]['id']}},_0x35aeb3={};_0x35aeb3[_0x8930('0x25')]=_[_0x8930('0x3b')](db['SquareProject'][_0x8930('0x3c')]);_0x35aeb3['query']=_[_0x8930('0x3b')](_0x5d9cdc[_0x8930('0x26')]);_0x35aeb3[_0x8930('0x2f')]=_[_0x8930('0x27')](_0x35aeb3[_0x8930('0x25')],_0x35aeb3[_0x8930('0x26')]);_0x30f8b3['attributes']=_[_0x8930('0x27')](_0x35aeb3[_0x8930('0x25')],qs[_0x8930('0x29')](_0x5d9cdc[_0x8930('0x26')]['fields']));_0x30f8b3[_0x8930('0x28')]=_0x30f8b3['attributes'][_0x8930('0x2a')]?_0x30f8b3[_0x8930('0x28')]:_0x35aeb3[_0x8930('0x25')];if(_0x5d9cdc[_0x8930('0x26')]['includeAll']){_0x30f8b3[_0x8930('0x36')]=[{'all':!![]}];}_0x30f8b3=_['merge']({},_0x30f8b3,_0x5d9cdc[_0x8930('0x35')]);return db['SquareProject'][_0x8930('0x3d')](_0x30f8b3)[_0x8930('0x15')](handleEntityNotFound(_0x26c9bf,null))[_0x8930('0x15')](respondWithResult(_0x26c9bf,null))[_0x8930('0x38')](handleError(_0x26c9bf,null));};exports[_0x8930('0x3e')]=function(_0x115429,_0x356dc5){return db[_0x8930('0x23')][_0x8930('0x3e')](_0x115429[_0x8930('0x3f')],{})[_0x8930('0x15')](function(_0x137d08){var _0x3f67a0=_0x115429[_0x8930('0x40')][_0x8930('0x16')]({'plain':!![]});if(!_0x3f67a0)throw new Error(_0x8930('0x41'));if(_0x3f67a0[_0x8930('0x42')]===_0x8930('0x40')){var _0x5df88d=_0x137d08[_0x8930('0x16')]({'plain':!![]});var _0x180543='SquareProjects';return db[_0x8930('0x43')][_0x8930('0x3d')]({'where':{'name':_0x180543,'userProfileId':_0x3f67a0[_0x8930('0x44')]},'raw':!![]})[_0x8930('0x15')](function(_0x35cff4){if(_0x35cff4&&_0x35cff4[_0x8930('0x45')]===0x0){return db[_0x8930('0x18')][_0x8930('0x3e')]({'name':_0x5df88d[_0x8930('0x20')],'resourceId':_0x5df88d['id'],'type':_0x35cff4['name'],'sectionId':_0x35cff4['id']},{})[_0x8930('0x15')](function(){return _0x137d08;});}else{return _0x137d08;}})[_0x8930('0x38')](function(_0x426f13){logger[_0x8930('0x1e')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x426f13);throw _0x426f13;});}return _0x137d08;})[_0x8930('0x15')](respondWithResult(_0x356dc5,0xc9))[_0x8930('0x38')](handleError(_0x356dc5,null));};exports[_0x8930('0x13')]=function(_0xf4259f,_0x452b4f){if(_0xf4259f[_0x8930('0x3f')]['id']){delete _0xf4259f[_0x8930('0x3f')]['id'];}return db[_0x8930('0x23')][_0x8930('0x3d')]({'where':{'id':_0xf4259f[_0x8930('0x3a')]['id']}})[_0x8930('0x15')](handleEntityNotFound(_0x452b4f,null))['then'](saveUpdates(_0xf4259f[_0x8930('0x3f')],null))['then'](function(_0x1bf397){if(!_0x1bf397)return;var _0x36ad76=_0x1bf397[_0x8930('0x16')]({'plain':!![]});return _0x36ad76;})[_0x8930('0x15')](function(_0x354b98){var _0x4aed7f=new Redis(config['redis']);_0x4aed7f['publish']('agi',JSON['stringify'](_['pick'](_0x354b98,['id',_0x8930('0x20'),_0x8930('0x46')])));return _0x354b98;})[_0x8930('0x15')](respondWithResult(_0x452b4f,null))[_0x8930('0x38')](handleError(_0x452b4f,null));};exports['destroy']=function(_0x4ca856,_0x34688c){return db[_0x8930('0x23')][_0x8930('0x3d')]({'where':{'id':_0x4ca856['params']['id']}})[_0x8930('0x15')](handleEntityNotFound(_0x34688c,null))[_0x8930('0x15')](removeEntity(_0x34688c,null))[_0x8930('0x38')](handleError(_0x34688c,null));};