Built motion from commit ecb45b58.|2.6.31
[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 _0xa076=['publish','agi','stringify','end','sendStatus','stack','name','send','index','map','SquareProject','rawAttributes','type','key','model','query','keys','filters','attributes','fields','order','where','filter','merge','VIRTUAL','includeAll','rows','catch','show','params','intersection','length','include','options','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','SquareProjects','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','pick','production','ioredis','../../components/parsers/qs','../../config/environment','redis','defaults','socket.io-emitter','./squareProject.socket','register','status','offset','undefined','limit','count','set','Content-Range','json','update','then','get','UserProfileResource'];(function(_0x1f3801,_0x20226a){var _0x28b32c=function(_0x38bc55){while(--_0x38bc55){_0x1f3801['push'](_0x1f3801['shift']());}};_0x28b32c(++_0x20226a);}(_0xa076,0x1ec));var _0x6a07=function(_0x2267a6,_0x51dc59){_0x2267a6=_0x2267a6-0x0;var _0x51d40a=_0xa076[_0x2267a6];return _0x51d40a;};'use strict';var _=require('lodash');var Redis=require(_0x6a07('0x0'));var qs=require(_0x6a07('0x1'));var logger=require('../../config/logger')('api');var config=require(_0x6a07('0x2'));var db=require('../../mysqldb')['db'];config[_0x6a07('0x3')]=_[_0x6a07('0x4')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x6a07('0x5'))(new Redis(config['redis']));require(_0x6a07('0x6'))[_0x6a07('0x7')](socket);function respondWithResult(_0x893ba8,_0x174be7){_0x174be7=_0x174be7||0xc8;return function(_0xcc48ad){if(_0xcc48ad){return _0x893ba8[_0x6a07('0x8')](_0x174be7)['json'](_0xcc48ad);}};}function respondWithFilteredResult(_0x3efd95,_0x639630){return function(_0x524a68){if(_0x524a68){var _0x32c820=typeof _0x639630[_0x6a07('0x9')]===_0x6a07('0xa')&&typeof _0x639630[_0x6a07('0xb')]===_0x6a07('0xa');var _0x1a0df6=_0x524a68[_0x6a07('0xc')];var _0x463a95=_0x32c820?0x0:_0x639630[_0x6a07('0x9')];var _0x1ecd4a=_0x32c820?_0x524a68[_0x6a07('0xc')]:_0x639630[_0x6a07('0x9')]+_0x639630[_0x6a07('0xb')];var _0x2e69d7;if(_0x1ecd4a>=_0x1a0df6){_0x1ecd4a=_0x1a0df6;_0x2e69d7=0xc8;}else{_0x2e69d7=0xce;}_0x3efd95[_0x6a07('0x8')](_0x2e69d7);return _0x3efd95[_0x6a07('0xd')](_0x6a07('0xe'),_0x463a95+'-'+_0x1ecd4a+'/'+_0x1a0df6)[_0x6a07('0xf')](_0x524a68);}return null;};}function saveUpdates(_0x569ea2){return function(_0x5ccac5){if(_0x5ccac5){return _0x5ccac5[_0x6a07('0x10')](_0x569ea2)[_0x6a07('0x11')](function(_0x4156f5){return _0x4156f5;});}return null;};}function removeEntity(_0x39c382){return function(_0x3632a5){if(_0x3632a5){return _0x3632a5['destroy']()[_0x6a07('0x11')](function(){var _0x5b83b3=_0x3632a5[_0x6a07('0x12')]({'plain':!![]});var _0x126b5d='SquareProjects';return db[_0x6a07('0x13')]['destroy']({'where':{'type':_0x126b5d,'resourceId':_0x5b83b3['id']}})['then'](function(){return _0x3632a5;});})[_0x6a07('0x11')](function(){var _0xc73b76=new Redis(config[_0x6a07('0x3')]);_0xc73b76[_0x6a07('0x14')](_0x6a07('0x15'),JSON[_0x6a07('0x16')]({'id':_0x3632a5['id'],'deleted':!![]}));})[_0x6a07('0x11')](function(){_0x39c382[_0x6a07('0x8')](0xcc)[_0x6a07('0x17')]();});}};}function handleEntityNotFound(_0x414550){return function(_0x46ebd7){if(!_0x46ebd7){_0x414550[_0x6a07('0x18')](0x194);}return _0x46ebd7;};}function handleError(_0x5f2f59,_0x3c40c6){_0x3c40c6=_0x3c40c6||0x1f4;return function(_0x349d4c){logger['error'](_0x349d4c[_0x6a07('0x19')]);if(_0x349d4c[_0x6a07('0x1a')]){delete _0x349d4c['name'];}_0x5f2f59[_0x6a07('0x8')](_0x3c40c6)[_0x6a07('0x1b')](_0x349d4c);};}exports[_0x6a07('0x1c')]=function(_0x4e5a28,_0x5e403a){var _0xcc8170={},_0x244e0b={},_0x454355={'count':0x0,'rows':[]};var _0x4d2fe0=_[_0x6a07('0x1d')](db[_0x6a07('0x1e')][_0x6a07('0x1f')],function(_0x4462eb){return{'name':_0x4462eb['fieldName'],'type':_0x4462eb[_0x6a07('0x20')][_0x6a07('0x21')]};});_0x244e0b[_0x6a07('0x22')]=_[_0x6a07('0x1d')](_0x4d2fe0,'name');_0x244e0b[_0x6a07('0x23')]=_[_0x6a07('0x24')](_0x4e5a28[_0x6a07('0x23')]);_0x244e0b[_0x6a07('0x25')]=_['intersection'](_0x244e0b['model'],_0x244e0b[_0x6a07('0x23')]);_0xcc8170[_0x6a07('0x26')]=_['intersection'](_0x244e0b[_0x6a07('0x22')],qs[_0x6a07('0x27')](_0x4e5a28[_0x6a07('0x23')]['fields']));_0xcc8170['attributes']=_0xcc8170['attributes']['length']?_0xcc8170[_0x6a07('0x26')]:_0x244e0b['model'];if(!_0x4e5a28['query']['hasOwnProperty']('nolimit')){_0xcc8170[_0x6a07('0xb')]=qs[_0x6a07('0xb')](_0x4e5a28['query'][_0x6a07('0xb')]);_0xcc8170[_0x6a07('0x9')]=qs['offset'](_0x4e5a28[_0x6a07('0x23')]['offset']);}_0xcc8170[_0x6a07('0x28')]=qs['sort'](_0x4e5a28[_0x6a07('0x23')]['sort']);_0xcc8170[_0x6a07('0x29')]=qs[_0x6a07('0x25')](_['pick'](_0x4e5a28[_0x6a07('0x23')],_0x244e0b[_0x6a07('0x25')]),_0x4d2fe0);if(_0x4e5a28[_0x6a07('0x23')][_0x6a07('0x2a')]){_0xcc8170['where']=_[_0x6a07('0x2b')](_0xcc8170[_0x6a07('0x29')],{'$or':_[_0x6a07('0x1d')](_0x4d2fe0,function(_0x4c65fc){if(_0x4c65fc[_0x6a07('0x20')]!==_0x6a07('0x2c')){var _0x29fe87={};_0x29fe87[_0x4c65fc[_0x6a07('0x1a')]]={'$like':'%'+_0x4e5a28['query'][_0x6a07('0x2a')]+'%'};return _0x29fe87;}})});}_0xcc8170=_['merge']({},_0xcc8170,_0x4e5a28['options']);var _0x317f9c={'where':_0xcc8170[_0x6a07('0x29')]};return db[_0x6a07('0x1e')][_0x6a07('0xc')](_0x317f9c)[_0x6a07('0x11')](function(_0x19c9c8){_0x454355['count']=_0x19c9c8;if(_0x4e5a28[_0x6a07('0x23')][_0x6a07('0x2d')]){_0xcc8170['include']=[{'all':!![]}];}return db[_0x6a07('0x1e')]['findAll'](_0xcc8170);})['then'](function(_0x2f2d3e){_0x454355[_0x6a07('0x2e')]=_0x2f2d3e;return _0x454355;})[_0x6a07('0x11')](respondWithFilteredResult(_0x5e403a,_0xcc8170))[_0x6a07('0x2f')](handleError(_0x5e403a,null));};exports[_0x6a07('0x30')]=function(_0x1e4ba0,_0x140371){var _0x4c003d={'raw':![],'where':{'id':_0x1e4ba0[_0x6a07('0x31')]['id']}},_0x5b7b3c={};_0x5b7b3c[_0x6a07('0x22')]=_[_0x6a07('0x24')](db['SquareProject']['rawAttributes']);_0x5b7b3c[_0x6a07('0x23')]=_['keys'](_0x1e4ba0[_0x6a07('0x23')]);_0x5b7b3c[_0x6a07('0x25')]=_[_0x6a07('0x32')](_0x5b7b3c[_0x6a07('0x22')],_0x5b7b3c[_0x6a07('0x23')]);_0x4c003d[_0x6a07('0x26')]=_[_0x6a07('0x32')](_0x5b7b3c[_0x6a07('0x22')],qs[_0x6a07('0x27')](_0x1e4ba0[_0x6a07('0x23')][_0x6a07('0x27')]));_0x4c003d[_0x6a07('0x26')]=_0x4c003d[_0x6a07('0x26')][_0x6a07('0x33')]?_0x4c003d[_0x6a07('0x26')]:_0x5b7b3c[_0x6a07('0x22')];if(_0x1e4ba0[_0x6a07('0x23')]['includeAll']){_0x4c003d[_0x6a07('0x34')]=[{'all':!![]}];}_0x4c003d=_[_0x6a07('0x2b')]({},_0x4c003d,_0x1e4ba0[_0x6a07('0x35')]);return db[_0x6a07('0x1e')][_0x6a07('0x36')](_0x4c003d)['then'](handleEntityNotFound(_0x140371,null))[_0x6a07('0x11')](respondWithResult(_0x140371,null))[_0x6a07('0x2f')](handleError(_0x140371,null));};exports[_0x6a07('0x37')]=function(_0xe5a429,_0x3c21e0){return db[_0x6a07('0x1e')][_0x6a07('0x37')](_0xe5a429[_0x6a07('0x38')],{})[_0x6a07('0x11')](function(_0x33e1d0){var _0x310bed=_0xe5a429[_0x6a07('0x39')][_0x6a07('0x12')]({'plain':!![]});if(!_0x310bed)throw new Error(_0x6a07('0x3a'));if(_0x310bed['role']==='user'){var _0x5825bb=_0x33e1d0[_0x6a07('0x12')]({'plain':!![]});var _0x3dfa8a=_0x6a07('0x3b');return db['UserProfileSection'][_0x6a07('0x36')]({'where':{'name':_0x3dfa8a,'userProfileId':_0x310bed['userProfileId']},'raw':!![]})[_0x6a07('0x11')](function(_0x1bd29b){if(_0x1bd29b&&_0x1bd29b[_0x6a07('0x3c')]===0x0){return db[_0x6a07('0x13')][_0x6a07('0x37')]({'name':_0x5825bb[_0x6a07('0x1a')],'resourceId':_0x5825bb['id'],'type':_0x1bd29b[_0x6a07('0x1a')],'sectionId':_0x1bd29b['id']},{})[_0x6a07('0x11')](function(){return _0x33e1d0;});}else{return _0x33e1d0;}})['catch'](function(_0x488e90){logger['error'](_0x6a07('0x3d'),_0x488e90);throw _0x488e90;});}return _0x33e1d0;})[_0x6a07('0x11')](respondWithResult(_0x3c21e0,0xc9))[_0x6a07('0x2f')](handleError(_0x3c21e0,null));};exports[_0x6a07('0x10')]=function(_0x402fc8,_0x37fef7){if(_0x402fc8[_0x6a07('0x38')]['id']){delete _0x402fc8[_0x6a07('0x38')]['id'];}return db[_0x6a07('0x1e')][_0x6a07('0x36')]({'where':{'id':_0x402fc8[_0x6a07('0x31')]['id']}})[_0x6a07('0x11')](handleEntityNotFound(_0x37fef7,null))['then'](saveUpdates(_0x402fc8[_0x6a07('0x38')],null))[_0x6a07('0x11')](function(_0x4505c9){if(!_0x4505c9)return;var _0x133b52=_0x4505c9[_0x6a07('0x12')]({'plain':!![]});return _0x133b52;})[_0x6a07('0x11')](function(_0x56ed63){var _0x4f9f28=new Redis(config[_0x6a07('0x3')]);_0x4f9f28[_0x6a07('0x14')](_0x6a07('0x15'),JSON[_0x6a07('0x16')](_[_0x6a07('0x3e')](_0x56ed63,['id','name',_0x6a07('0x3f')])));return _0x56ed63;})['then'](respondWithResult(_0x37fef7,null))['catch'](handleError(_0x37fef7,null));};exports['destroy']=function(_0x2c8097,_0x4959ab){return db[_0x6a07('0x1e')][_0x6a07('0x36')]({'where':{'id':_0x2c8097['params']['id']}})[_0x6a07('0x11')](handleEntityNotFound(_0x4959ab,null))[_0x6a07('0x11')](removeEntity(_0x4959ab,null))[_0x6a07('0x2f')](handleError(_0x4959ab,null));};