Built motion from commit 3c2ce842.|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 _0xa069=['redis','defaults','localhost','socket.io-emitter','./squareProject.socket','status','offset','undefined','limit','count','set','Content-Range','json','update','then','get','SquareProjects','UserProfileResource','publish','agi','stringify','end','error','stack','name','send','index','rawAttributes','fieldName','key','map','keys','query','filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','type','VIRTUAL','includeAll','include','SquareProject','findAll','rows','show','params','options','catch','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','find','userProfileId','autoAssociation','lodash','ioredis','../../config/logger','api'];(function(_0x2f0159,_0x39a639){var _0x37560d=function(_0x5ddef1){while(--_0x5ddef1){_0x2f0159['push'](_0x2f0159['shift']());}};_0x37560d(++_0x39a639);}(_0xa069,0x18e));var _0x9a06=function(_0x39859b,_0x2fd601){_0x39859b=_0x39859b-0x0;var _0x2c3170=_0xa069[_0x39859b];return _0x2c3170;};'use strict';var _=require(_0x9a06('0x0'));var Redis=require(_0x9a06('0x1'));var qs=require('../../components/parsers/qs');var logger=require(_0x9a06('0x2'))(_0x9a06('0x3'));var config=require('../../config/environment');var db=require('../../mysqldb')['db'];config[_0x9a06('0x4')]=_[_0x9a06('0x5')](config[_0x9a06('0x4')],{'host':_0x9a06('0x6'),'port':0x18eb});var socket=require(_0x9a06('0x7'))(new Redis(config[_0x9a06('0x4')]));require(_0x9a06('0x8'))['register'](socket);function respondWithResult(_0x40859a,_0x238760){_0x238760=_0x238760||0xc8;return function(_0x17e8e4){if(_0x17e8e4){return _0x40859a[_0x9a06('0x9')](_0x238760)['json'](_0x17e8e4);}};}function respondWithFilteredResult(_0x407d57,_0xaf1cc0){return function(_0x280732){if(_0x280732){var _0x45f49f=typeof _0xaf1cc0[_0x9a06('0xa')]===_0x9a06('0xb')&&typeof _0xaf1cc0[_0x9a06('0xc')]===_0x9a06('0xb');var _0x181ea2=_0x280732[_0x9a06('0xd')];var _0xa887b1=_0x45f49f?0x0:_0xaf1cc0[_0x9a06('0xa')];var _0x50ca55=_0x45f49f?_0x280732[_0x9a06('0xd')]:_0xaf1cc0[_0x9a06('0xa')]+_0xaf1cc0[_0x9a06('0xc')];var _0x74cfba;if(_0x50ca55>=_0x181ea2){_0x50ca55=_0x181ea2;_0x74cfba=0xc8;}else{_0x74cfba=0xce;}_0x407d57[_0x9a06('0x9')](_0x74cfba);return _0x407d57[_0x9a06('0xe')](_0x9a06('0xf'),_0xa887b1+'-'+_0x50ca55+'/'+_0x181ea2)[_0x9a06('0x10')](_0x280732);}return null;};}function saveUpdates(_0x2186cf){return function(_0x4fc362){if(_0x4fc362){return _0x4fc362[_0x9a06('0x11')](_0x2186cf)[_0x9a06('0x12')](function(_0x565fae){return _0x565fae;});}return null;};}function removeEntity(_0x2ad47b){return function(_0x22b18e){if(_0x22b18e){return _0x22b18e['destroy']()['then'](function(){var _0x3f8499=_0x22b18e[_0x9a06('0x13')]({'plain':!![]});var _0x587be0=_0x9a06('0x14');return db[_0x9a06('0x15')]['destroy']({'where':{'type':_0x587be0,'resourceId':_0x3f8499['id']}})[_0x9a06('0x12')](function(){return _0x22b18e;});})[_0x9a06('0x12')](function(){var _0x4b9692=new Redis(config[_0x9a06('0x4')]);_0x4b9692[_0x9a06('0x16')](_0x9a06('0x17'),JSON[_0x9a06('0x18')]({'id':_0x22b18e['id'],'deleted':!![]}));})['then'](function(){_0x2ad47b[_0x9a06('0x9')](0xcc)[_0x9a06('0x19')]();});}};}function handleEntityNotFound(_0x1ea416){return function(_0x40672e){if(!_0x40672e){_0x1ea416['sendStatus'](0x194);}return _0x40672e;};}function handleError(_0xd4f70d,_0x1eedcc){_0x1eedcc=_0x1eedcc||0x1f4;return function(_0xbf8d23){logger[_0x9a06('0x1a')](_0xbf8d23[_0x9a06('0x1b')]);if(_0xbf8d23[_0x9a06('0x1c')]){delete _0xbf8d23[_0x9a06('0x1c')];}_0xd4f70d[_0x9a06('0x9')](_0x1eedcc)[_0x9a06('0x1d')](_0xbf8d23);};}exports[_0x9a06('0x1e')]=function(_0x547ca5,_0x341088){var _0x3b1a5b={},_0x5495f2={},_0x39ffb1={'count':0x0,'rows':[]};var _0x237527=_['map'](db['SquareProject'][_0x9a06('0x1f')],function(_0x275dc1){return{'name':_0x275dc1[_0x9a06('0x20')],'type':_0x275dc1['type'][_0x9a06('0x21')]};});_0x5495f2['model']=_[_0x9a06('0x22')](_0x237527,'name');_0x5495f2['query']=_[_0x9a06('0x23')](_0x547ca5[_0x9a06('0x24')]);_0x5495f2[_0x9a06('0x25')]=_[_0x9a06('0x26')](_0x5495f2[_0x9a06('0x27')],_0x5495f2['query']);_0x3b1a5b['attributes']=_[_0x9a06('0x26')](_0x5495f2['model'],qs['fields'](_0x547ca5[_0x9a06('0x24')][_0x9a06('0x28')]));_0x3b1a5b[_0x9a06('0x29')]=_0x3b1a5b[_0x9a06('0x29')][_0x9a06('0x2a')]?_0x3b1a5b[_0x9a06('0x29')]:_0x5495f2['model'];if(!_0x547ca5[_0x9a06('0x24')][_0x9a06('0x2b')](_0x9a06('0x2c'))){_0x3b1a5b[_0x9a06('0xc')]=qs[_0x9a06('0xc')](_0x547ca5[_0x9a06('0x24')]['limit']);_0x3b1a5b[_0x9a06('0xa')]=qs[_0x9a06('0xa')](_0x547ca5[_0x9a06('0x24')][_0x9a06('0xa')]);}_0x3b1a5b[_0x9a06('0x2d')]=qs[_0x9a06('0x2e')](_0x547ca5['query'][_0x9a06('0x2e')]);_0x3b1a5b[_0x9a06('0x2f')]=qs['filters'](_[_0x9a06('0x30')](_0x547ca5[_0x9a06('0x24')],_0x5495f2[_0x9a06('0x25')]),_0x237527);if(_0x547ca5['query']['filter']){_0x3b1a5b['where']=_[_0x9a06('0x31')](_0x3b1a5b['where'],{'$or':_['map'](_0x237527,function(_0x20d286){if(_0x20d286[_0x9a06('0x32')]!==_0x9a06('0x33')){var _0x490b27={};_0x490b27[_0x20d286[_0x9a06('0x1c')]]={'$like':'%'+_0x547ca5[_0x9a06('0x24')]['filter']+'%'};return _0x490b27;}})});}_0x3b1a5b=_[_0x9a06('0x31')]({},_0x3b1a5b,_0x547ca5['options']);var _0x592712={'where':_0x3b1a5b['where']};return db['SquareProject']['count'](_0x592712)['then'](function(_0x7be8f7){_0x39ffb1[_0x9a06('0xd')]=_0x7be8f7;if(_0x547ca5[_0x9a06('0x24')][_0x9a06('0x34')]){_0x3b1a5b[_0x9a06('0x35')]=[{'all':!![]}];}return db[_0x9a06('0x36')][_0x9a06('0x37')](_0x3b1a5b);})[_0x9a06('0x12')](function(_0x5d2a66){_0x39ffb1[_0x9a06('0x38')]=_0x5d2a66;return _0x39ffb1;})[_0x9a06('0x12')](respondWithFilteredResult(_0x341088,_0x3b1a5b))['catch'](handleError(_0x341088,null));};exports[_0x9a06('0x39')]=function(_0x10748f,_0x4b38a5){var _0xd4921b={'raw':![],'where':{'id':_0x10748f[_0x9a06('0x3a')]['id']}},_0x16a896={};_0x16a896['model']=_[_0x9a06('0x23')](db['SquareProject'][_0x9a06('0x1f')]);_0x16a896[_0x9a06('0x24')]=_[_0x9a06('0x23')](_0x10748f[_0x9a06('0x24')]);_0x16a896[_0x9a06('0x25')]=_[_0x9a06('0x26')](_0x16a896[_0x9a06('0x27')],_0x16a896['query']);_0xd4921b[_0x9a06('0x29')]=_[_0x9a06('0x26')](_0x16a896[_0x9a06('0x27')],qs[_0x9a06('0x28')](_0x10748f[_0x9a06('0x24')][_0x9a06('0x28')]));_0xd4921b[_0x9a06('0x29')]=_0xd4921b['attributes'][_0x9a06('0x2a')]?_0xd4921b[_0x9a06('0x29')]:_0x16a896['model'];if(_0x10748f[_0x9a06('0x24')][_0x9a06('0x34')]){_0xd4921b[_0x9a06('0x35')]=[{'all':!![]}];}_0xd4921b=_['merge']({},_0xd4921b,_0x10748f[_0x9a06('0x3b')]);return db[_0x9a06('0x36')]['find'](_0xd4921b)['then'](handleEntityNotFound(_0x4b38a5,null))['then'](respondWithResult(_0x4b38a5,null))[_0x9a06('0x3c')](handleError(_0x4b38a5,null));};exports[_0x9a06('0x3d')]=function(_0x56045c,_0xf63c22){return db[_0x9a06('0x36')][_0x9a06('0x3d')](_0x56045c[_0x9a06('0x3e')],{})[_0x9a06('0x12')](function(_0x29c089){var _0x29c541=_0x56045c['user'][_0x9a06('0x13')]({'plain':!![]});if(!_0x29c541)throw new Error(_0x9a06('0x3f'));if(_0x29c541['role']==='user'){var _0x15aa85=_0x29c089['get']({'plain':!![]});var _0x234a88=_0x9a06('0x14');return db['UserProfileSection'][_0x9a06('0x40')]({'where':{'name':_0x234a88,'userProfileId':_0x29c541[_0x9a06('0x41')]},'raw':!![]})[_0x9a06('0x12')](function(_0x1be5f3){if(_0x1be5f3&&_0x1be5f3[_0x9a06('0x42')]===0x0){return db[_0x9a06('0x15')][_0x9a06('0x3d')]({'name':_0x15aa85['name'],'resourceId':_0x15aa85['id'],'type':_0x1be5f3['name'],'sectionId':_0x1be5f3['id']},{})[_0x9a06('0x12')](function(){return _0x29c089;});}else{return _0x29c089;}})['catch'](function(_0x6df7d6){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x6df7d6);throw _0x6df7d6;});}return _0x29c089;})[_0x9a06('0x12')](respondWithResult(_0xf63c22,0xc9))[_0x9a06('0x3c')](handleError(_0xf63c22,null));};exports[_0x9a06('0x11')]=function(_0x270c31,_0x5c0a56){if(_0x270c31[_0x9a06('0x3e')]['id']){delete _0x270c31['body']['id'];}return db['SquareProject'][_0x9a06('0x40')]({'where':{'id':_0x270c31['params']['id']}})[_0x9a06('0x12')](handleEntityNotFound(_0x5c0a56,null))[_0x9a06('0x12')](saveUpdates(_0x270c31[_0x9a06('0x3e')],null))['then'](function(_0x3802e9){if(!_0x3802e9)return;var _0x4f3f43=_0x3802e9[_0x9a06('0x13')]({'plain':!![]});return _0x4f3f43;})[_0x9a06('0x12')](function(_0x541891){var _0x15a109=new Redis(config['redis']);_0x15a109[_0x9a06('0x16')](_0x9a06('0x17'),JSON[_0x9a06('0x18')](_[_0x9a06('0x30')](_0x541891,['id',_0x9a06('0x1c'),'production'])));return _0x541891;})[_0x9a06('0x12')](respondWithResult(_0x5c0a56,null))[_0x9a06('0x3c')](handleError(_0x5c0a56,null));};exports['destroy']=function(_0x3aebb4,_0x498aca){return db[_0x9a06('0x36')][_0x9a06('0x40')]({'where':{'id':_0x3aebb4['params']['id']}})['then'](handleEntityNotFound(_0x498aca,null))['then'](removeEntity(_0x498aca,null))[_0x9a06('0x3c')](handleError(_0x498aca,null));};