913f446451144cdaa5d3edbf0b028c3fc570b3ea
[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 _0xede0=['redis','defaults','./squareProject.socket','status','json','offset','undefined','limit','count','Content-Range','update','then','destroy','get','SquareProjects','agi','stringify','end','sendStatus','error','stack','name','send','map','SquareProject','rawAttributes','fieldName','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','type','filter','includeAll','include','findAll','rows','catch','show','params','options','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','publish','production','lodash','ioredis','../../components/parsers/qs','../../config/logger','../../config/environment'];(function(_0x33b600,_0x3dee02){var _0x9627e9=function(_0x5f4bd9){while(--_0x5f4bd9){_0x33b600['push'](_0x33b600['shift']());}};_0x9627e9(++_0x3dee02);}(_0xede0,0x10b));var _0x0ede=function(_0x57e3dd,_0x57b471){_0x57e3dd=_0x57e3dd-0x0;var _0x1720e3=_0xede0[_0x57e3dd];return _0x1720e3;};'use strict';var _=require(_0x0ede('0x0'));var Redis=require(_0x0ede('0x1'));var qs=require(_0x0ede('0x2'));var logger=require(_0x0ede('0x3'))('api');var config=require(_0x0ede('0x4'));var db=require('../../mysqldb')['db'];config[_0x0ede('0x5')]=_[_0x0ede('0x6')](config[_0x0ede('0x5')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x0ede('0x5')]));require(_0x0ede('0x7'))['register'](socket);function respondWithResult(_0x4516d1,_0x47bbcf){_0x47bbcf=_0x47bbcf||0xc8;return function(_0x528e05){if(_0x528e05){return _0x4516d1[_0x0ede('0x8')](_0x47bbcf)[_0x0ede('0x9')](_0x528e05);}};}function respondWithFilteredResult(_0x5511ee,_0x1ca4b9){return function(_0x4c3608){if(_0x4c3608){var _0x3935de=typeof _0x1ca4b9[_0x0ede('0xa')]===_0x0ede('0xb')&&typeof _0x1ca4b9[_0x0ede('0xc')]===_0x0ede('0xb');var _0x1cf08f=_0x4c3608[_0x0ede('0xd')];var _0x2fd09c=_0x3935de?0x0:_0x1ca4b9[_0x0ede('0xa')];var _0x4e2adc=_0x3935de?_0x4c3608[_0x0ede('0xd')]:_0x1ca4b9['offset']+_0x1ca4b9['limit'];var _0x5dee84;if(_0x4e2adc>=_0x1cf08f){_0x4e2adc=_0x1cf08f;_0x5dee84=0xc8;}else{_0x5dee84=0xce;}_0x5511ee[_0x0ede('0x8')](_0x5dee84);return _0x5511ee['set'](_0x0ede('0xe'),_0x2fd09c+'-'+_0x4e2adc+'/'+_0x1cf08f)[_0x0ede('0x9')](_0x4c3608);}return null;};}function saveUpdates(_0x4630e0){return function(_0x16ad60){if(_0x16ad60){return _0x16ad60[_0x0ede('0xf')](_0x4630e0)[_0x0ede('0x10')](function(_0x30d6ce){return _0x30d6ce;});}return null;};}function removeEntity(_0xc21dca){return function(_0x32afe4){if(_0x32afe4){return _0x32afe4[_0x0ede('0x11')]()[_0x0ede('0x10')](function(){var _0x136025=_0x32afe4[_0x0ede('0x12')]({'plain':!![]});var _0x51fa18=_0x0ede('0x13');return db['UserProfileResource'][_0x0ede('0x11')]({'where':{'type':_0x51fa18,'resourceId':_0x136025['id']}})['then'](function(){return _0x32afe4;});})[_0x0ede('0x10')](function(){var _0x2a7570=new Redis(config['redis']);_0x2a7570['publish'](_0x0ede('0x14'),JSON[_0x0ede('0x15')]({'id':_0x32afe4['id'],'deleted':!![]}));})[_0x0ede('0x10')](function(){_0xc21dca[_0x0ede('0x8')](0xcc)[_0x0ede('0x16')]();});}};}function handleEntityNotFound(_0x1e180a){return function(_0x5347b4){if(!_0x5347b4){_0x1e180a[_0x0ede('0x17')](0x194);}return _0x5347b4;};}function handleError(_0x18b5a7,_0x43955b){_0x43955b=_0x43955b||0x1f4;return function(_0x17f0f9){logger[_0x0ede('0x18')](_0x17f0f9[_0x0ede('0x19')]);if(_0x17f0f9[_0x0ede('0x1a')]){delete _0x17f0f9[_0x0ede('0x1a')];}_0x18b5a7[_0x0ede('0x8')](_0x43955b)[_0x0ede('0x1b')](_0x17f0f9);};}exports['index']=function(_0x4b7456,_0xbe8b79){var _0x404d77={},_0x8f6f3={},_0x1f15bb={'count':0x0,'rows':[]};var _0x4af468=_[_0x0ede('0x1c')](db[_0x0ede('0x1d')][_0x0ede('0x1e')],function(_0x483830){return{'name':_0x483830[_0x0ede('0x1f')],'type':_0x483830['type'][_0x0ede('0x20')]};});_0x8f6f3['model']=_[_0x0ede('0x1c')](_0x4af468,_0x0ede('0x1a'));_0x8f6f3[_0x0ede('0x21')]=_[_0x0ede('0x22')](_0x4b7456[_0x0ede('0x21')]);_0x8f6f3[_0x0ede('0x23')]=_[_0x0ede('0x24')](_0x8f6f3[_0x0ede('0x25')],_0x8f6f3[_0x0ede('0x21')]);_0x404d77[_0x0ede('0x26')]=_[_0x0ede('0x24')](_0x8f6f3['model'],qs[_0x0ede('0x27')](_0x4b7456[_0x0ede('0x21')][_0x0ede('0x27')]));_0x404d77[_0x0ede('0x26')]=_0x404d77[_0x0ede('0x26')][_0x0ede('0x28')]?_0x404d77[_0x0ede('0x26')]:_0x8f6f3[_0x0ede('0x25')];if(!_0x4b7456[_0x0ede('0x21')][_0x0ede('0x29')](_0x0ede('0x2a'))){_0x404d77['limit']=qs['limit'](_0x4b7456[_0x0ede('0x21')][_0x0ede('0xc')]);_0x404d77[_0x0ede('0xa')]=qs[_0x0ede('0xa')](_0x4b7456['query'][_0x0ede('0xa')]);}_0x404d77[_0x0ede('0x2b')]=qs[_0x0ede('0x2c')](_0x4b7456[_0x0ede('0x21')][_0x0ede('0x2c')]);_0x404d77[_0x0ede('0x2d')]=qs[_0x0ede('0x23')](_[_0x0ede('0x2e')](_0x4b7456[_0x0ede('0x21')],_0x8f6f3['filters']),_0x4af468);if(_0x4b7456['query']['filter']){_0x404d77[_0x0ede('0x2d')]=_[_0x0ede('0x2f')](_0x404d77['where'],{'$or':_[_0x0ede('0x1c')](_0x4af468,function(_0x410a52){if(_0x410a52[_0x0ede('0x30')]!=='VIRTUAL'){var _0x1d1187={};_0x1d1187[_0x410a52[_0x0ede('0x1a')]]={'$like':'%'+_0x4b7456[_0x0ede('0x21')][_0x0ede('0x31')]+'%'};return _0x1d1187;}})});}_0x404d77=_[_0x0ede('0x2f')]({},_0x404d77,_0x4b7456['options']);var _0x426b66={'where':_0x404d77[_0x0ede('0x2d')]};return db[_0x0ede('0x1d')][_0x0ede('0xd')](_0x426b66)[_0x0ede('0x10')](function(_0x570572){_0x1f15bb[_0x0ede('0xd')]=_0x570572;if(_0x4b7456[_0x0ede('0x21')][_0x0ede('0x32')]){_0x404d77[_0x0ede('0x33')]=[{'all':!![]}];}return db['SquareProject'][_0x0ede('0x34')](_0x404d77);})[_0x0ede('0x10')](function(_0x51dc9c){_0x1f15bb[_0x0ede('0x35')]=_0x51dc9c;return _0x1f15bb;})[_0x0ede('0x10')](respondWithFilteredResult(_0xbe8b79,_0x404d77))[_0x0ede('0x36')](handleError(_0xbe8b79,null));};exports[_0x0ede('0x37')]=function(_0x3b8a5f,_0xfea8a4){var _0x3a46d1={'raw':![],'where':{'id':_0x3b8a5f[_0x0ede('0x38')]['id']}},_0x3fcf86={};_0x3fcf86[_0x0ede('0x25')]=_[_0x0ede('0x22')](db[_0x0ede('0x1d')][_0x0ede('0x1e')]);_0x3fcf86[_0x0ede('0x21')]=_['keys'](_0x3b8a5f[_0x0ede('0x21')]);_0x3fcf86[_0x0ede('0x23')]=_[_0x0ede('0x24')](_0x3fcf86['model'],_0x3fcf86[_0x0ede('0x21')]);_0x3a46d1[_0x0ede('0x26')]=_['intersection'](_0x3fcf86['model'],qs[_0x0ede('0x27')](_0x3b8a5f[_0x0ede('0x21')][_0x0ede('0x27')]));_0x3a46d1['attributes']=_0x3a46d1['attributes'][_0x0ede('0x28')]?_0x3a46d1[_0x0ede('0x26')]:_0x3fcf86['model'];if(_0x3b8a5f[_0x0ede('0x21')][_0x0ede('0x32')]){_0x3a46d1['include']=[{'all':!![]}];}_0x3a46d1=_[_0x0ede('0x2f')]({},_0x3a46d1,_0x3b8a5f[_0x0ede('0x39')]);return db[_0x0ede('0x1d')][_0x0ede('0x3a')](_0x3a46d1)[_0x0ede('0x10')](handleEntityNotFound(_0xfea8a4,null))[_0x0ede('0x10')](respondWithResult(_0xfea8a4,null))[_0x0ede('0x36')](handleError(_0xfea8a4,null));};exports[_0x0ede('0x3b')]=function(_0x45cb71,_0x1371bf){return db[_0x0ede('0x1d')][_0x0ede('0x3b')](_0x45cb71[_0x0ede('0x3c')],{})[_0x0ede('0x10')](function(_0x27a116){var _0x2be96f=_0x45cb71[_0x0ede('0x3d')][_0x0ede('0x12')]({'plain':!![]});if(!_0x2be96f)throw new Error(_0x0ede('0x3e'));if(_0x2be96f[_0x0ede('0x3f')]===_0x0ede('0x3d')){var _0x3206bd=_0x27a116['get']({'plain':!![]});var _0x7dc815=_0x0ede('0x13');return db['UserProfileSection']['find']({'where':{'name':_0x7dc815,'userProfileId':_0x2be96f[_0x0ede('0x40')]},'raw':!![]})[_0x0ede('0x10')](function(_0x3fdae9){if(_0x3fdae9&&_0x3fdae9['autoAssociation']===0x0){return db['UserProfileResource'][_0x0ede('0x3b')]({'name':_0x3206bd[_0x0ede('0x1a')],'resourceId':_0x3206bd['id'],'type':_0x3fdae9['name'],'sectionId':_0x3fdae9['id']},{})[_0x0ede('0x10')](function(){return _0x27a116;});}else{return _0x27a116;}})[_0x0ede('0x36')](function(_0x2c5d81){logger[_0x0ede('0x18')](_0x0ede('0x41'),_0x2c5d81);throw _0x2c5d81;});}return _0x27a116;})['then'](respondWithResult(_0x1371bf,0xc9))[_0x0ede('0x36')](handleError(_0x1371bf,null));};exports[_0x0ede('0xf')]=function(_0x1fec9e,_0x1bcdd2){if(_0x1fec9e[_0x0ede('0x3c')]['id']){delete _0x1fec9e[_0x0ede('0x3c')]['id'];}return db[_0x0ede('0x1d')][_0x0ede('0x3a')]({'where':{'id':_0x1fec9e[_0x0ede('0x38')]['id']}})[_0x0ede('0x10')](handleEntityNotFound(_0x1bcdd2,null))[_0x0ede('0x10')](saveUpdates(_0x1fec9e[_0x0ede('0x3c')],null))['then'](function(_0x529c67){if(!_0x529c67)return;var _0x3fddb9=_0x529c67[_0x0ede('0x12')]({'plain':!![]});return _0x3fddb9;})[_0x0ede('0x10')](function(_0x51edbd){var _0x441ccd=new Redis(config[_0x0ede('0x5')]);_0x441ccd[_0x0ede('0x42')](_0x0ede('0x14'),JSON[_0x0ede('0x15')](_[_0x0ede('0x2e')](_0x51edbd,['id','name',_0x0ede('0x43')])));return _0x51edbd;})[_0x0ede('0x10')](respondWithResult(_0x1bcdd2,null))[_0x0ede('0x36')](handleError(_0x1bcdd2,null));};exports[_0x0ede('0x11')]=function(_0x20f2fd,_0x12f0e4){return db['SquareProject'][_0x0ede('0x3a')]({'where':{'id':_0x20f2fd[_0x0ede('0x38')]['id']}})[_0x0ede('0x10')](handleEntityNotFound(_0x12f0e4,null))[_0x0ede('0x10')](removeEntity(_0x12f0e4,null))[_0x0ede('0x36')](handleError(_0x12f0e4,null));};