c8633570eb4a8f6d58375f2bce982186c0cc161d
[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 _0x7b1a=['catch','show','params','length','options','create','body','user','role','find','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','publish','production','lodash','ioredis','../../components/parsers/qs','api','../../config/environment','../../mysqldb','redis','defaults','localhost','./squareProject.socket','register','status','json','offset','undefined','count','then','destroy','get','SquareProjects','UserProfileResource','agi','end','sendStatus','error','stack','name','map','SquareProject','rawAttributes','fieldName','key','model','query','keys','intersection','attributes','hasOwnProperty','nolimit','limit','sort','where','pick','filters','filter','merge','includeAll','include','findAll','rows'];(function(_0x5a3cf0,_0x160a68){var _0x5a64ee=function(_0x34cd1d){while(--_0x34cd1d){_0x5a3cf0['push'](_0x5a3cf0['shift']());}};_0x5a64ee(++_0x160a68);}(_0x7b1a,0x1ce));var _0xa7b1=function(_0x4901ef,_0x4dc90b){_0x4901ef=_0x4901ef-0x0;var _0x4b471c=_0x7b1a[_0x4901ef];return _0x4b471c;};'use strict';var _=require(_0xa7b1('0x0'));var Redis=require(_0xa7b1('0x1'));var qs=require(_0xa7b1('0x2'));var logger=require('../../config/logger')(_0xa7b1('0x3'));var config=require(_0xa7b1('0x4'));var db=require(_0xa7b1('0x5'))['db'];config[_0xa7b1('0x6')]=_[_0xa7b1('0x7')](config[_0xa7b1('0x6')],{'host':_0xa7b1('0x8'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xa7b1('0x6')]));require(_0xa7b1('0x9'))[_0xa7b1('0xa')](socket);function respondWithResult(_0x561b04,_0x3a143a){_0x3a143a=_0x3a143a||0xc8;return function(_0x323ddb){if(_0x323ddb){return _0x561b04[_0xa7b1('0xb')](_0x3a143a)[_0xa7b1('0xc')](_0x323ddb);}};}function respondWithFilteredResult(_0x39f542,_0x369dd2){return function(_0x5816a2){if(_0x5816a2){var _0x5ab707=typeof _0x369dd2[_0xa7b1('0xd')]===_0xa7b1('0xe')&&typeof _0x369dd2['limit']===_0xa7b1('0xe');var _0x4e135d=_0x5816a2[_0xa7b1('0xf')];var _0x22b552=_0x5ab707?0x0:_0x369dd2['offset'];var _0x59e6b3=_0x5ab707?_0x5816a2[_0xa7b1('0xf')]:_0x369dd2['offset']+_0x369dd2['limit'];var _0x5ddba1;if(_0x59e6b3>=_0x4e135d){_0x59e6b3=_0x4e135d;_0x5ddba1=0xc8;}else{_0x5ddba1=0xce;}_0x39f542[_0xa7b1('0xb')](_0x5ddba1);return _0x39f542['set']('Content-Range',_0x22b552+'-'+_0x59e6b3+'/'+_0x4e135d)[_0xa7b1('0xc')](_0x5816a2);}return null;};}function saveUpdates(_0x673e66){return function(_0x4274d4){if(_0x4274d4){return _0x4274d4['update'](_0x673e66)[_0xa7b1('0x10')](function(_0x596816){return _0x596816;});}return null;};}function removeEntity(_0x42a0b1){return function(_0x5138f1){if(_0x5138f1){return _0x5138f1[_0xa7b1('0x11')]()[_0xa7b1('0x10')](function(){var _0x3c5b86=_0x5138f1[_0xa7b1('0x12')]({'plain':!![]});var _0x415462=_0xa7b1('0x13');return db[_0xa7b1('0x14')][_0xa7b1('0x11')]({'where':{'type':_0x415462,'resourceId':_0x3c5b86['id']}})['then'](function(){return _0x5138f1;});})[_0xa7b1('0x10')](function(){var _0x372250=new Redis(config[_0xa7b1('0x6')]);_0x372250['publish'](_0xa7b1('0x15'),JSON['stringify']({'id':_0x5138f1['id'],'deleted':!![]}));})[_0xa7b1('0x10')](function(){_0x42a0b1[_0xa7b1('0xb')](0xcc)[_0xa7b1('0x16')]();});}};}function handleEntityNotFound(_0x4004ed){return function(_0x497241){if(!_0x497241){_0x4004ed[_0xa7b1('0x17')](0x194);}return _0x497241;};}function handleError(_0x4b79df,_0x9003e2){_0x9003e2=_0x9003e2||0x1f4;return function(_0x184859){logger[_0xa7b1('0x18')](_0x184859[_0xa7b1('0x19')]);if(_0x184859['name']){delete _0x184859[_0xa7b1('0x1a')];}_0x4b79df[_0xa7b1('0xb')](_0x9003e2)['send'](_0x184859);};}exports['index']=function(_0x4d6a14,_0x39fc01){var _0xc07a3f={},_0x55e6ed={},_0x31ea72={'count':0x0,'rows':[]};var _0x49e54f=_[_0xa7b1('0x1b')](db[_0xa7b1('0x1c')][_0xa7b1('0x1d')],function(_0x57d442){return{'name':_0x57d442[_0xa7b1('0x1e')],'type':_0x57d442['type'][_0xa7b1('0x1f')]};});_0x55e6ed[_0xa7b1('0x20')]=_[_0xa7b1('0x1b')](_0x49e54f,_0xa7b1('0x1a'));_0x55e6ed[_0xa7b1('0x21')]=_[_0xa7b1('0x22')](_0x4d6a14[_0xa7b1('0x21')]);_0x55e6ed['filters']=_[_0xa7b1('0x23')](_0x55e6ed[_0xa7b1('0x20')],_0x55e6ed[_0xa7b1('0x21')]);_0xc07a3f[_0xa7b1('0x24')]=_['intersection'](_0x55e6ed[_0xa7b1('0x20')],qs['fields'](_0x4d6a14[_0xa7b1('0x21')]['fields']));_0xc07a3f[_0xa7b1('0x24')]=_0xc07a3f['attributes']['length']?_0xc07a3f[_0xa7b1('0x24')]:_0x55e6ed[_0xa7b1('0x20')];if(!_0x4d6a14[_0xa7b1('0x21')][_0xa7b1('0x25')](_0xa7b1('0x26'))){_0xc07a3f[_0xa7b1('0x27')]=qs['limit'](_0x4d6a14[_0xa7b1('0x21')][_0xa7b1('0x27')]);_0xc07a3f['offset']=qs['offset'](_0x4d6a14[_0xa7b1('0x21')][_0xa7b1('0xd')]);}_0xc07a3f['order']=qs[_0xa7b1('0x28')](_0x4d6a14[_0xa7b1('0x21')][_0xa7b1('0x28')]);_0xc07a3f[_0xa7b1('0x29')]=qs['filters'](_[_0xa7b1('0x2a')](_0x4d6a14[_0xa7b1('0x21')],_0x55e6ed[_0xa7b1('0x2b')]),_0x49e54f);if(_0x4d6a14['query'][_0xa7b1('0x2c')]){_0xc07a3f[_0xa7b1('0x29')]=_[_0xa7b1('0x2d')](_0xc07a3f[_0xa7b1('0x29')],{'$or':_[_0xa7b1('0x1b')](_0x49e54f,function(_0x1b2dd3){if(_0x1b2dd3['type']!=='VIRTUAL'){var _0x3970b8={};_0x3970b8[_0x1b2dd3[_0xa7b1('0x1a')]]={'$like':'%'+_0x4d6a14[_0xa7b1('0x21')][_0xa7b1('0x2c')]+'%'};return _0x3970b8;}})});}_0xc07a3f=_['merge']({},_0xc07a3f,_0x4d6a14['options']);var _0x4c7609={'where':_0xc07a3f['where']};return db[_0xa7b1('0x1c')]['count'](_0x4c7609)[_0xa7b1('0x10')](function(_0x219858){_0x31ea72[_0xa7b1('0xf')]=_0x219858;if(_0x4d6a14['query'][_0xa7b1('0x2e')]){_0xc07a3f[_0xa7b1('0x2f')]=[{'all':!![]}];}return db[_0xa7b1('0x1c')][_0xa7b1('0x30')](_0xc07a3f);})[_0xa7b1('0x10')](function(_0x14e36f){_0x31ea72[_0xa7b1('0x31')]=_0x14e36f;return _0x31ea72;})[_0xa7b1('0x10')](respondWithFilteredResult(_0x39fc01,_0xc07a3f))[_0xa7b1('0x32')](handleError(_0x39fc01,null));};exports[_0xa7b1('0x33')]=function(_0x1d5212,_0x1cb9ee){var _0x370c12={'raw':![],'where':{'id':_0x1d5212[_0xa7b1('0x34')]['id']}},_0x4dd13={};_0x4dd13['model']=_[_0xa7b1('0x22')](db['SquareProject'][_0xa7b1('0x1d')]);_0x4dd13[_0xa7b1('0x21')]=_['keys'](_0x1d5212[_0xa7b1('0x21')]);_0x4dd13[_0xa7b1('0x2b')]=_[_0xa7b1('0x23')](_0x4dd13[_0xa7b1('0x20')],_0x4dd13['query']);_0x370c12[_0xa7b1('0x24')]=_[_0xa7b1('0x23')](_0x4dd13[_0xa7b1('0x20')],qs['fields'](_0x1d5212[_0xa7b1('0x21')]['fields']));_0x370c12[_0xa7b1('0x24')]=_0x370c12[_0xa7b1('0x24')][_0xa7b1('0x35')]?_0x370c12['attributes']:_0x4dd13[_0xa7b1('0x20')];if(_0x1d5212[_0xa7b1('0x21')][_0xa7b1('0x2e')]){_0x370c12[_0xa7b1('0x2f')]=[{'all':!![]}];}_0x370c12=_[_0xa7b1('0x2d')]({},_0x370c12,_0x1d5212[_0xa7b1('0x36')]);return db[_0xa7b1('0x1c')]['find'](_0x370c12)[_0xa7b1('0x10')](handleEntityNotFound(_0x1cb9ee,null))[_0xa7b1('0x10')](respondWithResult(_0x1cb9ee,null))[_0xa7b1('0x32')](handleError(_0x1cb9ee,null));};exports[_0xa7b1('0x37')]=function(_0x2b1ac8,_0x360a57){return db['SquareProject'][_0xa7b1('0x37')](_0x2b1ac8[_0xa7b1('0x38')],{})[_0xa7b1('0x10')](function(_0x1eb3c1){var _0x3fd936=_0x2b1ac8[_0xa7b1('0x39')][_0xa7b1('0x12')]({'plain':!![]});if(!_0x3fd936)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3fd936[_0xa7b1('0x3a')]===_0xa7b1('0x39')){var _0x5e6180=_0x1eb3c1[_0xa7b1('0x12')]({'plain':!![]});var _0x209816=_0xa7b1('0x13');return db['UserProfileSection'][_0xa7b1('0x3b')]({'where':{'name':_0x209816,'userProfileId':_0x3fd936[_0xa7b1('0x3c')]},'raw':!![]})[_0xa7b1('0x10')](function(_0x2aefcd){if(_0x2aefcd&&_0x2aefcd['autoAssociation']===0x0){return db[_0xa7b1('0x14')][_0xa7b1('0x37')]({'name':_0x5e6180[_0xa7b1('0x1a')],'resourceId':_0x5e6180['id'],'type':_0x2aefcd[_0xa7b1('0x1a')],'sectionId':_0x2aefcd['id']},{})[_0xa7b1('0x10')](function(){return _0x1eb3c1;});}else{return _0x1eb3c1;}})['catch'](function(_0x54977e){logger[_0xa7b1('0x18')](_0xa7b1('0x3d'),_0x54977e);throw _0x54977e;});}return _0x1eb3c1;})['then'](respondWithResult(_0x360a57,0xc9))['catch'](handleError(_0x360a57,null));};exports['update']=function(_0x47cab8,_0xcd0782){if(_0x47cab8[_0xa7b1('0x38')]['id']){delete _0x47cab8['body']['id'];}return db[_0xa7b1('0x1c')][_0xa7b1('0x3b')]({'where':{'id':_0x47cab8[_0xa7b1('0x34')]['id']}})['then'](handleEntityNotFound(_0xcd0782,null))[_0xa7b1('0x10')](saveUpdates(_0x47cab8['body'],null))[_0xa7b1('0x10')](function(_0x32da3d){if(!_0x32da3d)return;var _0x505639=_0x32da3d[_0xa7b1('0x12')]({'plain':!![]});return _0x505639;})[_0xa7b1('0x10')](function(_0x1b98bc){var _0x3c2ede=new Redis(config[_0xa7b1('0x6')]);_0x3c2ede[_0xa7b1('0x3e')](_0xa7b1('0x15'),JSON['stringify'](_[_0xa7b1('0x2a')](_0x1b98bc,['id',_0xa7b1('0x1a'),_0xa7b1('0x3f')])));return _0x1b98bc;})[_0xa7b1('0x10')](respondWithResult(_0xcd0782,null))[_0xa7b1('0x32')](handleError(_0xcd0782,null));};exports[_0xa7b1('0x11')]=function(_0xd711cb,_0x3a7c4e){return db[_0xa7b1('0x1c')][_0xa7b1('0x3b')]({'where':{'id':_0xd711cb[_0xa7b1('0x34')]['id']}})[_0xa7b1('0x10')](handleEntityNotFound(_0x3a7c4e,null))[_0xa7b1('0x10')](removeEntity(_0x3a7c4e,null))['catch'](handleError(_0x3a7c4e,null));};