426823e19264224263a0314aea5e31059743915b
[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 _0xc692=['update','then','destroy','get','SquareProjects','UserProfileResource','publish','agi','end','sendStatus','error','name','send','index','SquareProject','rawAttributes','fieldName','type','key','query','keys','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filters','pick','filter','merge','where','map','VIRTUAL','options','includeAll','findAll','rows','catch','params','include','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','find','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','stringify','production','lodash','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./squareProject.socket','register','status','json','offset','undefined','limit','count','Content-Range'];(function(_0x51a2fe,_0x23fd16){var _0xca187e=function(_0x1108cc){while(--_0x1108cc){_0x51a2fe['push'](_0x51a2fe['shift']());}};_0xca187e(++_0x23fd16);}(_0xc692,0x163));var _0x2c69=function(_0x2d7f0e,_0x3e6fbd){_0x2d7f0e=_0x2d7f0e-0x0;var _0x110b07=_0xc692[_0x2d7f0e];return _0x110b07;};'use strict';var _=require(_0x2c69('0x0'));var Redis=require(_0x2c69('0x1'));var qs=require(_0x2c69('0x2'));var logger=require(_0x2c69('0x3'))(_0x2c69('0x4'));var config=require(_0x2c69('0x5'));var db=require(_0x2c69('0x6'))['db'];config[_0x2c69('0x7')]=_[_0x2c69('0x8')](config[_0x2c69('0x7')],{'host':_0x2c69('0x9'),'port':0x18eb});var socket=require(_0x2c69('0xa'))(new Redis(config[_0x2c69('0x7')]));require(_0x2c69('0xb'))[_0x2c69('0xc')](socket);function respondWithResult(_0x3f55d7,_0x4f3989){_0x4f3989=_0x4f3989||0xc8;return function(_0x59c257){if(_0x59c257){return _0x3f55d7[_0x2c69('0xd')](_0x4f3989)[_0x2c69('0xe')](_0x59c257);}};}function respondWithFilteredResult(_0x4122fa,_0x24d743){return function(_0xcb6974){if(_0xcb6974){var _0x30951a=typeof _0x24d743[_0x2c69('0xf')]===_0x2c69('0x10')&&typeof _0x24d743[_0x2c69('0x11')]===_0x2c69('0x10');var _0x5009de=_0xcb6974['count'];var _0x4497c6=_0x30951a?0x0:_0x24d743[_0x2c69('0xf')];var _0x5a8d8d=_0x30951a?_0xcb6974[_0x2c69('0x12')]:_0x24d743[_0x2c69('0xf')]+_0x24d743[_0x2c69('0x11')];var _0x2a8bc7;if(_0x5a8d8d>=_0x5009de){_0x5a8d8d=_0x5009de;_0x2a8bc7=0xc8;}else{_0x2a8bc7=0xce;}_0x4122fa[_0x2c69('0xd')](_0x2a8bc7);return _0x4122fa['set'](_0x2c69('0x13'),_0x4497c6+'-'+_0x5a8d8d+'/'+_0x5009de)[_0x2c69('0xe')](_0xcb6974);}return null;};}function saveUpdates(_0x5da123){return function(_0x50a77f){if(_0x50a77f){return _0x50a77f[_0x2c69('0x14')](_0x5da123)[_0x2c69('0x15')](function(_0x31c3d4){return _0x31c3d4;});}return null;};}function removeEntity(_0x509ff0){return function(_0x21df13){if(_0x21df13){return _0x21df13[_0x2c69('0x16')]()[_0x2c69('0x15')](function(){var _0x58dbfe=_0x21df13[_0x2c69('0x17')]({'plain':!![]});var _0x4ffa53=_0x2c69('0x18');return db[_0x2c69('0x19')][_0x2c69('0x16')]({'where':{'type':_0x4ffa53,'resourceId':_0x58dbfe['id']}})[_0x2c69('0x15')](function(){return _0x21df13;});})[_0x2c69('0x15')](function(){var _0xef00f5=new Redis(config[_0x2c69('0x7')]);_0xef00f5[_0x2c69('0x1a')](_0x2c69('0x1b'),JSON['stringify']({'id':_0x21df13['id'],'deleted':!![]}));})[_0x2c69('0x15')](function(){_0x509ff0[_0x2c69('0xd')](0xcc)[_0x2c69('0x1c')]();});}};}function handleEntityNotFound(_0x3302d){return function(_0x543eb3){if(!_0x543eb3){_0x3302d[_0x2c69('0x1d')](0x194);}return _0x543eb3;};}function handleError(_0x3ee716,_0x294602){_0x294602=_0x294602||0x1f4;return function(_0x18e79b){logger[_0x2c69('0x1e')](_0x18e79b['stack']);if(_0x18e79b[_0x2c69('0x1f')]){delete _0x18e79b[_0x2c69('0x1f')];}_0x3ee716[_0x2c69('0xd')](_0x294602)[_0x2c69('0x20')](_0x18e79b);};}exports[_0x2c69('0x21')]=function(_0x39db85,_0x3b995c){var _0xf803a8={},_0x1c62eb={},_0x17abd7={'count':0x0,'rows':[]};var _0x327bfb=_['map'](db[_0x2c69('0x22')][_0x2c69('0x23')],function(_0x102341){return{'name':_0x102341[_0x2c69('0x24')],'type':_0x102341[_0x2c69('0x25')][_0x2c69('0x26')]};});_0x1c62eb['model']=_['map'](_0x327bfb,_0x2c69('0x1f'));_0x1c62eb[_0x2c69('0x27')]=_[_0x2c69('0x28')](_0x39db85[_0x2c69('0x27')]);_0x1c62eb['filters']=_[_0x2c69('0x29')](_0x1c62eb[_0x2c69('0x2a')],_0x1c62eb[_0x2c69('0x27')]);_0xf803a8[_0x2c69('0x2b')]=_[_0x2c69('0x29')](_0x1c62eb[_0x2c69('0x2a')],qs[_0x2c69('0x2c')](_0x39db85[_0x2c69('0x27')][_0x2c69('0x2c')]));_0xf803a8[_0x2c69('0x2b')]=_0xf803a8['attributes'][_0x2c69('0x2d')]?_0xf803a8[_0x2c69('0x2b')]:_0x1c62eb[_0x2c69('0x2a')];if(!_0x39db85[_0x2c69('0x27')][_0x2c69('0x2e')](_0x2c69('0x2f'))){_0xf803a8['limit']=qs[_0x2c69('0x11')](_0x39db85['query'][_0x2c69('0x11')]);_0xf803a8[_0x2c69('0xf')]=qs[_0x2c69('0xf')](_0x39db85[_0x2c69('0x27')][_0x2c69('0xf')]);}_0xf803a8[_0x2c69('0x30')]=qs['sort'](_0x39db85[_0x2c69('0x27')][_0x2c69('0x31')]);_0xf803a8['where']=qs[_0x2c69('0x32')](_[_0x2c69('0x33')](_0x39db85[_0x2c69('0x27')],_0x1c62eb[_0x2c69('0x32')]),_0x327bfb);if(_0x39db85[_0x2c69('0x27')][_0x2c69('0x34')]){_0xf803a8['where']=_[_0x2c69('0x35')](_0xf803a8[_0x2c69('0x36')],{'$or':_[_0x2c69('0x37')](_0x327bfb,function(_0x1201a7){if(_0x1201a7['type']!==_0x2c69('0x38')){var _0x3fb74f={};_0x3fb74f[_0x1201a7[_0x2c69('0x1f')]]={'$like':'%'+_0x39db85['query'][_0x2c69('0x34')]+'%'};return _0x3fb74f;}})});}_0xf803a8=_[_0x2c69('0x35')]({},_0xf803a8,_0x39db85[_0x2c69('0x39')]);var _0x538858={'where':_0xf803a8[_0x2c69('0x36')]};return db[_0x2c69('0x22')][_0x2c69('0x12')](_0x538858)[_0x2c69('0x15')](function(_0x58db7e){_0x17abd7[_0x2c69('0x12')]=_0x58db7e;if(_0x39db85['query'][_0x2c69('0x3a')]){_0xf803a8['include']=[{'all':!![]}];}return db[_0x2c69('0x22')][_0x2c69('0x3b')](_0xf803a8);})[_0x2c69('0x15')](function(_0x41152f){_0x17abd7[_0x2c69('0x3c')]=_0x41152f;return _0x17abd7;})[_0x2c69('0x15')](respondWithFilteredResult(_0x3b995c,_0xf803a8))[_0x2c69('0x3d')](handleError(_0x3b995c,null));};exports['show']=function(_0x12a932,_0x2c74e2){var _0x2b3959={'raw':![],'where':{'id':_0x12a932[_0x2c69('0x3e')]['id']}},_0x275d56={};_0x275d56[_0x2c69('0x2a')]=_['keys'](db['SquareProject'][_0x2c69('0x23')]);_0x275d56[_0x2c69('0x27')]=_[_0x2c69('0x28')](_0x12a932[_0x2c69('0x27')]);_0x275d56[_0x2c69('0x32')]=_[_0x2c69('0x29')](_0x275d56[_0x2c69('0x2a')],_0x275d56[_0x2c69('0x27')]);_0x2b3959[_0x2c69('0x2b')]=_[_0x2c69('0x29')](_0x275d56['model'],qs['fields'](_0x12a932[_0x2c69('0x27')][_0x2c69('0x2c')]));_0x2b3959[_0x2c69('0x2b')]=_0x2b3959[_0x2c69('0x2b')][_0x2c69('0x2d')]?_0x2b3959[_0x2c69('0x2b')]:_0x275d56[_0x2c69('0x2a')];if(_0x12a932[_0x2c69('0x27')][_0x2c69('0x3a')]){_0x2b3959[_0x2c69('0x3f')]=[{'all':!![]}];}_0x2b3959=_['merge']({},_0x2b3959,_0x12a932[_0x2c69('0x39')]);return db['SquareProject']['find'](_0x2b3959)[_0x2c69('0x15')](handleEntityNotFound(_0x2c74e2,null))['then'](respondWithResult(_0x2c74e2,null))[_0x2c69('0x3d')](handleError(_0x2c74e2,null));};exports[_0x2c69('0x40')]=function(_0x50765e,_0x1b8b7f){return db[_0x2c69('0x22')][_0x2c69('0x40')](_0x50765e['body'],{})['then'](function(_0x179558){var _0x2ac879=_0x50765e['user'][_0x2c69('0x17')]({'plain':!![]});if(!_0x2ac879)throw new Error(_0x2c69('0x41'));if(_0x2ac879[_0x2c69('0x42')]===_0x2c69('0x43')){var _0x2ecc9b=_0x179558['get']({'plain':!![]});var _0x88ae81=_0x2c69('0x18');return db[_0x2c69('0x44')][_0x2c69('0x45')]({'where':{'name':_0x88ae81,'userProfileId':_0x2ac879['userProfileId']},'raw':!![]})['then'](function(_0x579d6c){if(_0x579d6c&&_0x579d6c[_0x2c69('0x46')]===0x0){return db['UserProfileResource'][_0x2c69('0x40')]({'name':_0x2ecc9b['name'],'resourceId':_0x2ecc9b['id'],'type':_0x579d6c[_0x2c69('0x1f')],'sectionId':_0x579d6c['id']},{})['then'](function(){return _0x179558;});}else{return _0x179558;}})[_0x2c69('0x3d')](function(_0x22b82b){logger[_0x2c69('0x1e')](_0x2c69('0x47'),_0x22b82b);throw _0x22b82b;});}return _0x179558;})[_0x2c69('0x15')](respondWithResult(_0x1b8b7f,0xc9))[_0x2c69('0x3d')](handleError(_0x1b8b7f,null));};exports[_0x2c69('0x14')]=function(_0x1d445a,_0x116fe5){if(_0x1d445a[_0x2c69('0x48')]['id']){delete _0x1d445a['body']['id'];}return db[_0x2c69('0x22')][_0x2c69('0x45')]({'where':{'id':_0x1d445a[_0x2c69('0x3e')]['id']}})[_0x2c69('0x15')](handleEntityNotFound(_0x116fe5,null))['then'](saveUpdates(_0x1d445a[_0x2c69('0x48')],null))[_0x2c69('0x15')](function(_0x54bc5f){if(!_0x54bc5f)return;var _0x217262=_0x54bc5f[_0x2c69('0x17')]({'plain':!![]});return _0x217262;})['then'](function(_0x1eb8c5){var _0x3d14f0=new Redis(config['redis']);_0x3d14f0[_0x2c69('0x1a')](_0x2c69('0x1b'),JSON[_0x2c69('0x49')](_[_0x2c69('0x33')](_0x1eb8c5,['id',_0x2c69('0x1f'),_0x2c69('0x4a')])));return _0x1eb8c5;})['then'](respondWithResult(_0x116fe5,null))[_0x2c69('0x3d')](handleError(_0x116fe5,null));};exports['destroy']=function(_0x297b67,_0x53f9be){return db[_0x2c69('0x22')][_0x2c69('0x45')]({'where':{'id':_0x297b67[_0x2c69('0x3e')]['id']}})['then'](handleEntityNotFound(_0x53f9be,null))[_0x2c69('0x15')](removeEntity(_0x53f9be,null))['catch'](handleError(_0x53f9be,null));};