74a1a2f4c42609e0c862ab5b8454652ee3283d2a
[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 _0x6887=['merge','options','include','findAll','rows','catch','show','params','includeAll','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','stringify','lodash','../../components/parsers/qs','../../config/logger','api','../../mysqldb','redis','defaults','socket.io-emitter','./squareProject.socket','register','status','offset','undefined','limit','count','set','Content-Range','json','update','then','destroy','get','SquareProjects','UserProfileResource','publish','agi','end','sendStatus','error','stack','name','send','map','SquareProject','rawAttributes','type','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL'];(function(_0x18b439,_0x3b8e65){var _0x40f6d7=function(_0xbf2d94){while(--_0xbf2d94){_0x18b439['push'](_0x18b439['shift']());}};_0x40f6d7(++_0x3b8e65);}(_0x6887,0x12f));var _0x7688=function(_0x196995,_0x2575dd){_0x196995=_0x196995-0x0;var _0x1ff73a=_0x6887[_0x196995];return _0x1ff73a;};'use strict';var _=require(_0x7688('0x0'));var Redis=require('ioredis');var qs=require(_0x7688('0x1'));var logger=require(_0x7688('0x2'))(_0x7688('0x3'));var config=require('../../config/environment');var db=require(_0x7688('0x4'))['db'];config[_0x7688('0x5')]=_[_0x7688('0x6')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x7688('0x7'))(new Redis(config['redis']));require(_0x7688('0x8'))[_0x7688('0x9')](socket);function respondWithResult(_0x981702,_0x3c27b8){_0x3c27b8=_0x3c27b8||0xc8;return function(_0x387f7b){if(_0x387f7b){return _0x981702[_0x7688('0xa')](_0x3c27b8)['json'](_0x387f7b);}};}function respondWithFilteredResult(_0x3bb088,_0x30ad94){return function(_0xcab856){if(_0xcab856){var _0x87ab28=typeof _0x30ad94[_0x7688('0xb')]===_0x7688('0xc')&&typeof _0x30ad94[_0x7688('0xd')]===_0x7688('0xc');var _0x5d5f26=_0xcab856[_0x7688('0xe')];var _0x1804f3=_0x87ab28?0x0:_0x30ad94['offset'];var _0x19c3db=_0x87ab28?_0xcab856[_0x7688('0xe')]:_0x30ad94[_0x7688('0xb')]+_0x30ad94[_0x7688('0xd')];var _0x89527c;if(_0x19c3db>=_0x5d5f26){_0x19c3db=_0x5d5f26;_0x89527c=0xc8;}else{_0x89527c=0xce;}_0x3bb088[_0x7688('0xa')](_0x89527c);return _0x3bb088[_0x7688('0xf')](_0x7688('0x10'),_0x1804f3+'-'+_0x19c3db+'/'+_0x5d5f26)[_0x7688('0x11')](_0xcab856);}return null;};}function saveUpdates(_0x38adc5){return function(_0x292482){if(_0x292482){return _0x292482[_0x7688('0x12')](_0x38adc5)[_0x7688('0x13')](function(_0x35e3d7){return _0x35e3d7;});}return null;};}function removeEntity(_0x48c348){return function(_0x406109){if(_0x406109){return _0x406109[_0x7688('0x14')]()[_0x7688('0x13')](function(){var _0x4b8bc5=_0x406109[_0x7688('0x15')]({'plain':!![]});var _0x297c5f=_0x7688('0x16');return db[_0x7688('0x17')][_0x7688('0x14')]({'where':{'type':_0x297c5f,'resourceId':_0x4b8bc5['id']}})['then'](function(){return _0x406109;});})[_0x7688('0x13')](function(){var _0x1c9b95=new Redis(config[_0x7688('0x5')]);_0x1c9b95[_0x7688('0x18')](_0x7688('0x19'),JSON['stringify']({'id':_0x406109['id'],'deleted':!![]}));})[_0x7688('0x13')](function(){_0x48c348['status'](0xcc)[_0x7688('0x1a')]();});}};}function handleEntityNotFound(_0x206789){return function(_0x2bad62){if(!_0x2bad62){_0x206789[_0x7688('0x1b')](0x194);}return _0x2bad62;};}function handleError(_0x8ecbfe,_0x4efa8f){_0x4efa8f=_0x4efa8f||0x1f4;return function(_0x3cd35b){logger[_0x7688('0x1c')](_0x3cd35b[_0x7688('0x1d')]);if(_0x3cd35b[_0x7688('0x1e')]){delete _0x3cd35b[_0x7688('0x1e')];}_0x8ecbfe['status'](_0x4efa8f)[_0x7688('0x1f')](_0x3cd35b);};}exports['index']=function(_0x482cc0,_0x29af3b){var _0x2af670={},_0x4df297={},_0x390625={'count':0x0,'rows':[]};var _0xe680dc=_[_0x7688('0x20')](db[_0x7688('0x21')][_0x7688('0x22')],function(_0x5ee9ef){return{'name':_0x5ee9ef['fieldName'],'type':_0x5ee9ef[_0x7688('0x23')]['key']};});_0x4df297[_0x7688('0x24')]=_[_0x7688('0x20')](_0xe680dc,_0x7688('0x1e'));_0x4df297[_0x7688('0x25')]=_[_0x7688('0x26')](_0x482cc0['query']);_0x4df297[_0x7688('0x27')]=_[_0x7688('0x28')](_0x4df297[_0x7688('0x24')],_0x4df297[_0x7688('0x25')]);_0x2af670['attributes']=_[_0x7688('0x28')](_0x4df297[_0x7688('0x24')],qs[_0x7688('0x29')](_0x482cc0['query'][_0x7688('0x29')]));_0x2af670[_0x7688('0x2a')]=_0x2af670['attributes'][_0x7688('0x2b')]?_0x2af670[_0x7688('0x2a')]:_0x4df297[_0x7688('0x24')];if(!_0x482cc0[_0x7688('0x25')][_0x7688('0x2c')](_0x7688('0x2d'))){_0x2af670[_0x7688('0xd')]=qs[_0x7688('0xd')](_0x482cc0[_0x7688('0x25')][_0x7688('0xd')]);_0x2af670[_0x7688('0xb')]=qs['offset'](_0x482cc0[_0x7688('0x25')]['offset']);}_0x2af670[_0x7688('0x2e')]=qs['sort'](_0x482cc0[_0x7688('0x25')][_0x7688('0x2f')]);_0x2af670[_0x7688('0x30')]=qs[_0x7688('0x27')](_[_0x7688('0x31')](_0x482cc0['query'],_0x4df297[_0x7688('0x27')]),_0xe680dc);if(_0x482cc0[_0x7688('0x25')][_0x7688('0x32')]){_0x2af670[_0x7688('0x30')]=_['merge'](_0x2af670[_0x7688('0x30')],{'$or':_[_0x7688('0x20')](_0xe680dc,function(_0x80874a){if(_0x80874a[_0x7688('0x23')]!==_0x7688('0x33')){var _0x24f898={};_0x24f898[_0x80874a[_0x7688('0x1e')]]={'$like':'%'+_0x482cc0[_0x7688('0x25')][_0x7688('0x32')]+'%'};return _0x24f898;}})});}_0x2af670=_[_0x7688('0x34')]({},_0x2af670,_0x482cc0[_0x7688('0x35')]);var _0x5d7ce4={'where':_0x2af670[_0x7688('0x30')]};return db[_0x7688('0x21')][_0x7688('0xe')](_0x5d7ce4)[_0x7688('0x13')](function(_0x529636){_0x390625[_0x7688('0xe')]=_0x529636;if(_0x482cc0[_0x7688('0x25')]['includeAll']){_0x2af670[_0x7688('0x36')]=[{'all':!![]}];}return db[_0x7688('0x21')][_0x7688('0x37')](_0x2af670);})['then'](function(_0x245a02){_0x390625[_0x7688('0x38')]=_0x245a02;return _0x390625;})['then'](respondWithFilteredResult(_0x29af3b,_0x2af670))[_0x7688('0x39')](handleError(_0x29af3b,null));};exports[_0x7688('0x3a')]=function(_0x1943d2,_0x3c4556){var _0x2db74c={'raw':![],'where':{'id':_0x1943d2[_0x7688('0x3b')]['id']}},_0x45a63f={};_0x45a63f['model']=_[_0x7688('0x26')](db[_0x7688('0x21')]['rawAttributes']);_0x45a63f[_0x7688('0x25')]=_[_0x7688('0x26')](_0x1943d2[_0x7688('0x25')]);_0x45a63f[_0x7688('0x27')]=_[_0x7688('0x28')](_0x45a63f[_0x7688('0x24')],_0x45a63f['query']);_0x2db74c[_0x7688('0x2a')]=_[_0x7688('0x28')](_0x45a63f[_0x7688('0x24')],qs[_0x7688('0x29')](_0x1943d2['query'][_0x7688('0x29')]));_0x2db74c['attributes']=_0x2db74c['attributes']['length']?_0x2db74c[_0x7688('0x2a')]:_0x45a63f[_0x7688('0x24')];if(_0x1943d2['query'][_0x7688('0x3c')]){_0x2db74c[_0x7688('0x36')]=[{'all':!![]}];}_0x2db74c=_[_0x7688('0x34')]({},_0x2db74c,_0x1943d2[_0x7688('0x35')]);return db[_0x7688('0x21')][_0x7688('0x3d')](_0x2db74c)[_0x7688('0x13')](handleEntityNotFound(_0x3c4556,null))[_0x7688('0x13')](respondWithResult(_0x3c4556,null))[_0x7688('0x39')](handleError(_0x3c4556,null));};exports['create']=function(_0x11e72f,_0x1a26c5){return db[_0x7688('0x21')][_0x7688('0x3e')](_0x11e72f[_0x7688('0x3f')],{})[_0x7688('0x13')](function(_0x173bef){var _0x51e2ce=_0x11e72f[_0x7688('0x40')][_0x7688('0x15')]({'plain':!![]});if(!_0x51e2ce)throw new Error(_0x7688('0x41'));if(_0x51e2ce[_0x7688('0x42')]===_0x7688('0x40')){var _0x2f7b34=_0x173bef['get']({'plain':!![]});var _0x3de7c0=_0x7688('0x16');return db[_0x7688('0x43')][_0x7688('0x3d')]({'where':{'name':_0x3de7c0,'userProfileId':_0x51e2ce[_0x7688('0x44')]},'raw':!![]})[_0x7688('0x13')](function(_0x155775){if(_0x155775&&_0x155775['autoAssociation']===0x0){return db[_0x7688('0x17')][_0x7688('0x3e')]({'name':_0x2f7b34[_0x7688('0x1e')],'resourceId':_0x2f7b34['id'],'type':_0x155775[_0x7688('0x1e')],'sectionId':_0x155775['id']},{})[_0x7688('0x13')](function(){return _0x173bef;});}else{return _0x173bef;}})[_0x7688('0x39')](function(_0x4d4d8f){logger[_0x7688('0x1c')](_0x7688('0x45'),_0x4d4d8f);throw _0x4d4d8f;});}return _0x173bef;})['then'](respondWithResult(_0x1a26c5,0xc9))[_0x7688('0x39')](handleError(_0x1a26c5,null));};exports[_0x7688('0x12')]=function(_0x559667,_0x42746e){if(_0x559667[_0x7688('0x3f')]['id']){delete _0x559667[_0x7688('0x3f')]['id'];}return db[_0x7688('0x21')][_0x7688('0x3d')]({'where':{'id':_0x559667[_0x7688('0x3b')]['id']}})[_0x7688('0x13')](handleEntityNotFound(_0x42746e,null))[_0x7688('0x13')](saveUpdates(_0x559667[_0x7688('0x3f')],null))['then'](function(_0x56c9cb){if(!_0x56c9cb)return;var _0x3bd74f=_0x56c9cb[_0x7688('0x15')]({'plain':!![]});return _0x3bd74f;})[_0x7688('0x13')](function(_0x2d8cf0){var _0x1b6b27=new Redis(config['redis']);_0x1b6b27['publish'](_0x7688('0x19'),JSON[_0x7688('0x46')](_[_0x7688('0x31')](_0x2d8cf0,['id',_0x7688('0x1e'),'production'])));return _0x2d8cf0;})[_0x7688('0x13')](respondWithResult(_0x42746e,null))[_0x7688('0x39')](handleError(_0x42746e,null));};exports['destroy']=function(_0x6c6b43,_0x3e8653){return db['SquareProject']['find']({'where':{'id':_0x6c6b43[_0x7688('0x3b')]['id']}})[_0x7688('0x13')](handleEntityNotFound(_0x3e8653,null))['then'](removeEntity(_0x3e8653,null))[_0x7688('0x39')](handleError(_0x3e8653,null));};