Built motion from commit f0a64034.|2.6.11
[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 _0x5e44=['query','filters','intersection','attributes','fields','length','order','sort','where','pick','merge','VIRTUAL','filter','includeAll','findAll','rows','catch','show','params','keys','options','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','stringify','lodash','ioredis','../../components/parsers/qs','../../config/logger','../../config/environment','redis','./squareProject.socket','register','status','json','limit','undefined','count','offset','set','Content-Range','update','then','get','SquareProjects','UserProfileResource','destroy','publish','end','sendStatus','error','stack','send','index','SquareProject','rawAttributes','type','key','model','map','name'];(function(_0x1f2f77,_0x23d269){var _0x176a6a=function(_0x2e4a96){while(--_0x2e4a96){_0x1f2f77['push'](_0x1f2f77['shift']());}};_0x176a6a(++_0x23d269);}(_0x5e44,0x1f4));var _0x45e4=function(_0x45b72e,_0x2b6bf1){_0x45b72e=_0x45b72e-0x0;var _0x22f685=_0x5e44[_0x45b72e];return _0x22f685;};'use strict';var _=require(_0x45e4('0x0'));var Redis=require(_0x45e4('0x1'));var qs=require(_0x45e4('0x2'));var logger=require(_0x45e4('0x3'))('api');var config=require(_0x45e4('0x4'));var db=require('../../mysqldb')['db'];config[_0x45e4('0x5')]=_['defaults'](config[_0x45e4('0x5')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x45e4('0x5')]));require(_0x45e4('0x6'))[_0x45e4('0x7')](socket);function respondWithResult(_0x20ac61,_0x1119f2){_0x1119f2=_0x1119f2||0xc8;return function(_0x394608){if(_0x394608){return _0x20ac61[_0x45e4('0x8')](_0x1119f2)[_0x45e4('0x9')](_0x394608);}};}function respondWithFilteredResult(_0x565554,_0x200556){return function(_0x528498){if(_0x528498){var _0x1d1c8a=typeof _0x200556['offset']==='undefined'&&typeof _0x200556[_0x45e4('0xa')]===_0x45e4('0xb');var _0x2db74b=_0x528498[_0x45e4('0xc')];var _0x24b462=_0x1d1c8a?0x0:_0x200556[_0x45e4('0xd')];var _0x302e18=_0x1d1c8a?_0x528498[_0x45e4('0xc')]:_0x200556[_0x45e4('0xd')]+_0x200556[_0x45e4('0xa')];var _0x6fefc9;if(_0x302e18>=_0x2db74b){_0x302e18=_0x2db74b;_0x6fefc9=0xc8;}else{_0x6fefc9=0xce;}_0x565554[_0x45e4('0x8')](_0x6fefc9);return _0x565554[_0x45e4('0xe')](_0x45e4('0xf'),_0x24b462+'-'+_0x302e18+'/'+_0x2db74b)[_0x45e4('0x9')](_0x528498);}return null;};}function saveUpdates(_0x121b89){return function(_0x137711){if(_0x137711){return _0x137711[_0x45e4('0x10')](_0x121b89)[_0x45e4('0x11')](function(_0x454416){return _0x454416;});}return null;};}function removeEntity(_0x5cdb7e){return function(_0x22d09c){if(_0x22d09c){return _0x22d09c['destroy']()[_0x45e4('0x11')](function(){var _0x51822e=_0x22d09c[_0x45e4('0x12')]({'plain':!![]});var _0x3682fa=_0x45e4('0x13');return db[_0x45e4('0x14')][_0x45e4('0x15')]({'where':{'type':_0x3682fa,'resourceId':_0x51822e['id']}})[_0x45e4('0x11')](function(){return _0x22d09c;});})[_0x45e4('0x11')](function(){var _0x2749b3=new Redis(config['redis']);_0x2749b3[_0x45e4('0x16')]('agi',JSON['stringify']({'id':_0x22d09c['id'],'deleted':!![]}));})['then'](function(){_0x5cdb7e[_0x45e4('0x8')](0xcc)[_0x45e4('0x17')]();});}};}function handleEntityNotFound(_0x2f3b2c){return function(_0x3ef2b2){if(!_0x3ef2b2){_0x2f3b2c[_0x45e4('0x18')](0x194);}return _0x3ef2b2;};}function handleError(_0x42ac08,_0x24746a){_0x24746a=_0x24746a||0x1f4;return function(_0x232c01){logger[_0x45e4('0x19')](_0x232c01[_0x45e4('0x1a')]);if(_0x232c01['name']){delete _0x232c01['name'];}_0x42ac08[_0x45e4('0x8')](_0x24746a)[_0x45e4('0x1b')](_0x232c01);};}exports[_0x45e4('0x1c')]=function(_0x52cdb6,_0x515767){var _0x38a3ad={},_0x347372={},_0x432d60={'count':0x0,'rows':[]};var _0x1882f0=_['map'](db[_0x45e4('0x1d')][_0x45e4('0x1e')],function(_0x489492){return{'name':_0x489492['fieldName'],'type':_0x489492[_0x45e4('0x1f')][_0x45e4('0x20')]};});_0x347372[_0x45e4('0x21')]=_[_0x45e4('0x22')](_0x1882f0,_0x45e4('0x23'));_0x347372[_0x45e4('0x24')]=_['keys'](_0x52cdb6[_0x45e4('0x24')]);_0x347372[_0x45e4('0x25')]=_[_0x45e4('0x26')](_0x347372[_0x45e4('0x21')],_0x347372[_0x45e4('0x24')]);_0x38a3ad[_0x45e4('0x27')]=_[_0x45e4('0x26')](_0x347372[_0x45e4('0x21')],qs[_0x45e4('0x28')](_0x52cdb6['query'][_0x45e4('0x28')]));_0x38a3ad[_0x45e4('0x27')]=_0x38a3ad['attributes'][_0x45e4('0x29')]?_0x38a3ad[_0x45e4('0x27')]:_0x347372[_0x45e4('0x21')];if(!_0x52cdb6[_0x45e4('0x24')]['hasOwnProperty']('nolimit')){_0x38a3ad[_0x45e4('0xa')]=qs['limit'](_0x52cdb6['query'][_0x45e4('0xa')]);_0x38a3ad[_0x45e4('0xd')]=qs[_0x45e4('0xd')](_0x52cdb6['query'][_0x45e4('0xd')]);}_0x38a3ad[_0x45e4('0x2a')]=qs[_0x45e4('0x2b')](_0x52cdb6[_0x45e4('0x24')]['sort']);_0x38a3ad[_0x45e4('0x2c')]=qs[_0x45e4('0x25')](_[_0x45e4('0x2d')](_0x52cdb6[_0x45e4('0x24')],_0x347372[_0x45e4('0x25')]),_0x1882f0);if(_0x52cdb6[_0x45e4('0x24')]['filter']){_0x38a3ad[_0x45e4('0x2c')]=_[_0x45e4('0x2e')](_0x38a3ad['where'],{'$or':_[_0x45e4('0x22')](_0x1882f0,function(_0x3fe165){if(_0x3fe165['type']!==_0x45e4('0x2f')){var _0x165e3d={};_0x165e3d[_0x3fe165[_0x45e4('0x23')]]={'$like':'%'+_0x52cdb6[_0x45e4('0x24')][_0x45e4('0x30')]+'%'};return _0x165e3d;}})});}_0x38a3ad=_['merge']({},_0x38a3ad,_0x52cdb6['options']);var _0x171a8e={'where':_0x38a3ad['where']};return db[_0x45e4('0x1d')]['count'](_0x171a8e)[_0x45e4('0x11')](function(_0x432390){_0x432d60['count']=_0x432390;if(_0x52cdb6[_0x45e4('0x24')][_0x45e4('0x31')]){_0x38a3ad['include']=[{'all':!![]}];}return db[_0x45e4('0x1d')][_0x45e4('0x32')](_0x38a3ad);})[_0x45e4('0x11')](function(_0x321969){_0x432d60[_0x45e4('0x33')]=_0x321969;return _0x432d60;})['then'](respondWithFilteredResult(_0x515767,_0x38a3ad))[_0x45e4('0x34')](handleError(_0x515767,null));};exports[_0x45e4('0x35')]=function(_0x5e4205,_0x264c08){var _0x57f900={'raw':![],'where':{'id':_0x5e4205[_0x45e4('0x36')]['id']}},_0x502527={};_0x502527['model']=_['keys'](db['SquareProject']['rawAttributes']);_0x502527[_0x45e4('0x24')]=_[_0x45e4('0x37')](_0x5e4205['query']);_0x502527[_0x45e4('0x25')]=_['intersection'](_0x502527[_0x45e4('0x21')],_0x502527[_0x45e4('0x24')]);_0x57f900['attributes']=_[_0x45e4('0x26')](_0x502527['model'],qs[_0x45e4('0x28')](_0x5e4205['query'][_0x45e4('0x28')]));_0x57f900[_0x45e4('0x27')]=_0x57f900[_0x45e4('0x27')][_0x45e4('0x29')]?_0x57f900[_0x45e4('0x27')]:_0x502527[_0x45e4('0x21')];if(_0x5e4205['query'][_0x45e4('0x31')]){_0x57f900['include']=[{'all':!![]}];}_0x57f900=_[_0x45e4('0x2e')]({},_0x57f900,_0x5e4205[_0x45e4('0x38')]);return db[_0x45e4('0x1d')][_0x45e4('0x39')](_0x57f900)['then'](handleEntityNotFound(_0x264c08,null))[_0x45e4('0x11')](respondWithResult(_0x264c08,null))[_0x45e4('0x34')](handleError(_0x264c08,null));};exports[_0x45e4('0x3a')]=function(_0x4d6ff4,_0x3f6c08){return db[_0x45e4('0x1d')]['create'](_0x4d6ff4['body'],{})[_0x45e4('0x11')](function(_0x481278){var _0x56168e=_0x4d6ff4[_0x45e4('0x3b')]['get']({'plain':!![]});if(!_0x56168e)throw new Error(_0x45e4('0x3c'));if(_0x56168e[_0x45e4('0x3d')]==='user'){var _0x37dac9=_0x481278['get']({'plain':!![]});var _0x3ac3ed='SquareProjects';return db[_0x45e4('0x3e')]['find']({'where':{'name':_0x3ac3ed,'userProfileId':_0x56168e['userProfileId']},'raw':!![]})['then'](function(_0x1cc69e){if(_0x1cc69e&&_0x1cc69e[_0x45e4('0x3f')]===0x0){return db[_0x45e4('0x14')]['create']({'name':_0x37dac9[_0x45e4('0x23')],'resourceId':_0x37dac9['id'],'type':_0x1cc69e[_0x45e4('0x23')],'sectionId':_0x1cc69e['id']},{})[_0x45e4('0x11')](function(){return _0x481278;});}else{return _0x481278;}})[_0x45e4('0x34')](function(_0x213340){logger[_0x45e4('0x19')](_0x45e4('0x40'),_0x213340);throw _0x213340;});}return _0x481278;})[_0x45e4('0x11')](respondWithResult(_0x3f6c08,0xc9))[_0x45e4('0x34')](handleError(_0x3f6c08,null));};exports[_0x45e4('0x10')]=function(_0x31ba37,_0x18fcd1){if(_0x31ba37['body']['id']){delete _0x31ba37[_0x45e4('0x41')]['id'];}return db[_0x45e4('0x1d')][_0x45e4('0x39')]({'where':{'id':_0x31ba37[_0x45e4('0x36')]['id']}})['then'](handleEntityNotFound(_0x18fcd1,null))[_0x45e4('0x11')](saveUpdates(_0x31ba37[_0x45e4('0x41')],null))[_0x45e4('0x11')](function(_0x118196){if(!_0x118196)return;var _0x13342b=_0x118196[_0x45e4('0x12')]({'plain':!![]});return _0x13342b;})[_0x45e4('0x11')](function(_0x1a0652){var _0x85df10=new Redis(config[_0x45e4('0x5')]);_0x85df10[_0x45e4('0x16')]('agi',JSON[_0x45e4('0x42')](_[_0x45e4('0x2d')](_0x1a0652,['id','name','production'])));return _0x1a0652;})[_0x45e4('0x11')](respondWithResult(_0x18fcd1,null))[_0x45e4('0x34')](handleError(_0x18fcd1,null));};exports[_0x45e4('0x15')]=function(_0xd78d8d,_0x406266){return db[_0x45e4('0x1d')][_0x45e4('0x39')]({'where':{'id':_0xd78d8d[_0x45e4('0x36')]['id']}})[_0x45e4('0x11')](handleEntityNotFound(_0x406266,null))[_0x45e4('0x11')](removeEntity(_0x406266,null))[_0x45e4('0x34')](handleError(_0x406266,null));};