68fe9594e401be7123ed3055a1e12bcd1f26d071
[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 _0xd5ce=['role','UserProfileSection','userProfileId','UserProfileResource','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','agi','production','params','lodash','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','defaults','redis','localhost','socket.io-emitter','./squareProject.socket','register','json','undefined','offset','count','limit','status','set','Content-Range','then','destroy','get','SquareProjects','publish','end','sendStatus','stack','name','map','type','key','model','query','keys','filters','intersection','attributes','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','SquareProject','includeAll','include','findAll','rows','catch','rawAttributes','fields','length','find','create','body','user'];(function(_0x57aab0,_0x2432c3){var _0x2e2acb=function(_0x40f294){while(--_0x40f294){_0x57aab0['push'](_0x57aab0['shift']());}};_0x2e2acb(++_0x2432c3);}(_0xd5ce,0xd8));var _0xed5c=function(_0x18b477,_0x555d04){_0x18b477=_0x18b477-0x0;var _0x240b92=_0xd5ce[_0x18b477];return _0x240b92;};'use strict';var _=require(_0xed5c('0x0'));var Redis=require(_0xed5c('0x1'));var qs=require(_0xed5c('0x2'));var logger=require(_0xed5c('0x3'))(_0xed5c('0x4'));var config=require(_0xed5c('0x5'));var db=require('../../mysqldb')['db'];config['redis']=_[_0xed5c('0x6')](config[_0xed5c('0x7')],{'host':_0xed5c('0x8'),'port':0x18eb});var socket=require(_0xed5c('0x9'))(new Redis(config[_0xed5c('0x7')]));require(_0xed5c('0xa'))[_0xed5c('0xb')](socket);function respondWithResult(_0x25cee6,_0x27c76c){_0x27c76c=_0x27c76c||0xc8;return function(_0x3ce7ea){if(_0x3ce7ea){return _0x25cee6['status'](_0x27c76c)[_0xed5c('0xc')](_0x3ce7ea);}};}function respondWithFilteredResult(_0x28e8d2,_0x2b99ee){return function(_0x236847){if(_0x236847){var _0x42debf=typeof _0x2b99ee['offset']===_0xed5c('0xd')&&typeof _0x2b99ee['limit']===_0xed5c('0xd');var _0x59684a=_0x236847['count'];var _0x286660=_0x42debf?0x0:_0x2b99ee[_0xed5c('0xe')];var _0x172203=_0x42debf?_0x236847[_0xed5c('0xf')]:_0x2b99ee[_0xed5c('0xe')]+_0x2b99ee[_0xed5c('0x10')];var _0x2deaae;if(_0x172203>=_0x59684a){_0x172203=_0x59684a;_0x2deaae=0xc8;}else{_0x2deaae=0xce;}_0x28e8d2[_0xed5c('0x11')](_0x2deaae);return _0x28e8d2[_0xed5c('0x12')](_0xed5c('0x13'),_0x286660+'-'+_0x172203+'/'+_0x59684a)[_0xed5c('0xc')](_0x236847);}return null;};}function saveUpdates(_0xad4c13){return function(_0x107273){if(_0x107273){return _0x107273['update'](_0xad4c13)[_0xed5c('0x14')](function(_0x3efac0){return _0x3efac0;});}return null;};}function removeEntity(_0x31254d){return function(_0x42670b){if(_0x42670b){return _0x42670b[_0xed5c('0x15')]()['then'](function(){var _0x3d1660=_0x42670b[_0xed5c('0x16')]({'plain':!![]});var _0xe055c4=_0xed5c('0x17');return db['UserProfileResource'][_0xed5c('0x15')]({'where':{'type':_0xe055c4,'resourceId':_0x3d1660['id']}})[_0xed5c('0x14')](function(){return _0x42670b;});})[_0xed5c('0x14')](function(){var _0x256301=new Redis(config[_0xed5c('0x7')]);_0x256301[_0xed5c('0x18')]('agi',JSON['stringify']({'id':_0x42670b['id'],'deleted':!![]}));})['then'](function(){_0x31254d[_0xed5c('0x11')](0xcc)[_0xed5c('0x19')]();});}};}function handleEntityNotFound(_0x12045c){return function(_0x1cda47){if(!_0x1cda47){_0x12045c[_0xed5c('0x1a')](0x194);}return _0x1cda47;};}function handleError(_0x2fe293,_0x27c8e8){_0x27c8e8=_0x27c8e8||0x1f4;return function(_0x1e6f7b){logger['error'](_0x1e6f7b[_0xed5c('0x1b')]);if(_0x1e6f7b[_0xed5c('0x1c')]){delete _0x1e6f7b[_0xed5c('0x1c')];}_0x2fe293[_0xed5c('0x11')](_0x27c8e8)['send'](_0x1e6f7b);};}exports['index']=function(_0x492a95,_0x1769fc){var _0x207eb9={},_0x4e6ec5={},_0x4dea1b={'count':0x0,'rows':[]};var _0x501b10=_[_0xed5c('0x1d')](db['SquareProject']['rawAttributes'],function(_0x12b8f3){return{'name':_0x12b8f3['fieldName'],'type':_0x12b8f3[_0xed5c('0x1e')][_0xed5c('0x1f')]};});_0x4e6ec5[_0xed5c('0x20')]=_['map'](_0x501b10,_0xed5c('0x1c'));_0x4e6ec5[_0xed5c('0x21')]=_[_0xed5c('0x22')](_0x492a95['query']);_0x4e6ec5[_0xed5c('0x23')]=_[_0xed5c('0x24')](_0x4e6ec5[_0xed5c('0x20')],_0x4e6ec5[_0xed5c('0x21')]);_0x207eb9[_0xed5c('0x25')]=_['intersection'](_0x4e6ec5[_0xed5c('0x20')],qs['fields'](_0x492a95[_0xed5c('0x21')]['fields']));_0x207eb9[_0xed5c('0x25')]=_0x207eb9[_0xed5c('0x25')]['length']?_0x207eb9[_0xed5c('0x25')]:_0x4e6ec5['model'];if(!_0x492a95[_0xed5c('0x21')][_0xed5c('0x26')](_0xed5c('0x27'))){_0x207eb9[_0xed5c('0x10')]=qs[_0xed5c('0x10')](_0x492a95['query']['limit']);_0x207eb9['offset']=qs[_0xed5c('0xe')](_0x492a95[_0xed5c('0x21')][_0xed5c('0xe')]);}_0x207eb9[_0xed5c('0x28')]=qs[_0xed5c('0x29')](_0x492a95[_0xed5c('0x21')]['sort']);_0x207eb9[_0xed5c('0x2a')]=qs['filters'](_['pick'](_0x492a95[_0xed5c('0x21')],_0x4e6ec5[_0xed5c('0x23')]),_0x501b10);if(_0x492a95[_0xed5c('0x21')][_0xed5c('0x2b')]){_0x207eb9[_0xed5c('0x2a')]=_[_0xed5c('0x2c')](_0x207eb9[_0xed5c('0x2a')],{'$or':_[_0xed5c('0x1d')](_0x501b10,function(_0x2a18fd){if(_0x2a18fd[_0xed5c('0x1e')]!==_0xed5c('0x2d')){var _0x2cd90b={};_0x2cd90b[_0x2a18fd[_0xed5c('0x1c')]]={'$like':'%'+_0x492a95['query']['filter']+'%'};return _0x2cd90b;}})});}_0x207eb9=_['merge']({},_0x207eb9,_0x492a95[_0xed5c('0x2e')]);var _0xe8e550={'where':_0x207eb9[_0xed5c('0x2a')]};return db[_0xed5c('0x2f')][_0xed5c('0xf')](_0xe8e550)[_0xed5c('0x14')](function(_0x52b628){_0x4dea1b['count']=_0x52b628;if(_0x492a95['query'][_0xed5c('0x30')]){_0x207eb9[_0xed5c('0x31')]=[{'all':!![]}];}return db[_0xed5c('0x2f')][_0xed5c('0x32')](_0x207eb9);})['then'](function(_0x2f360a){_0x4dea1b[_0xed5c('0x33')]=_0x2f360a;return _0x4dea1b;})[_0xed5c('0x14')](respondWithFilteredResult(_0x1769fc,_0x207eb9))[_0xed5c('0x34')](handleError(_0x1769fc,null));};exports['show']=function(_0x32850c,_0x4d8d4a){var _0x10cbbc={'raw':![],'where':{'id':_0x32850c['params']['id']}},_0x447082={};_0x447082['model']=_[_0xed5c('0x22')](db[_0xed5c('0x2f')][_0xed5c('0x35')]);_0x447082['query']=_['keys'](_0x32850c[_0xed5c('0x21')]);_0x447082[_0xed5c('0x23')]=_[_0xed5c('0x24')](_0x447082[_0xed5c('0x20')],_0x447082['query']);_0x10cbbc['attributes']=_[_0xed5c('0x24')](_0x447082[_0xed5c('0x20')],qs['fields'](_0x32850c[_0xed5c('0x21')][_0xed5c('0x36')]));_0x10cbbc['attributes']=_0x10cbbc['attributes'][_0xed5c('0x37')]?_0x10cbbc[_0xed5c('0x25')]:_0x447082[_0xed5c('0x20')];if(_0x32850c[_0xed5c('0x21')][_0xed5c('0x30')]){_0x10cbbc[_0xed5c('0x31')]=[{'all':!![]}];}_0x10cbbc=_[_0xed5c('0x2c')]({},_0x10cbbc,_0x32850c[_0xed5c('0x2e')]);return db[_0xed5c('0x2f')][_0xed5c('0x38')](_0x10cbbc)[_0xed5c('0x14')](handleEntityNotFound(_0x4d8d4a,null))[_0xed5c('0x14')](respondWithResult(_0x4d8d4a,null))[_0xed5c('0x34')](handleError(_0x4d8d4a,null));};exports[_0xed5c('0x39')]=function(_0x21376f,_0x1011bd){return db[_0xed5c('0x2f')][_0xed5c('0x39')](_0x21376f[_0xed5c('0x3a')],{})[_0xed5c('0x14')](function(_0x34c9a2){var _0x574cab=_0x21376f[_0xed5c('0x3b')]['get']({'plain':!![]});if(!_0x574cab)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x574cab[_0xed5c('0x3c')]===_0xed5c('0x3b')){var _0x215b9d=_0x34c9a2['get']({'plain':!![]});var _0x4d3b65='SquareProjects';return db[_0xed5c('0x3d')][_0xed5c('0x38')]({'where':{'name':_0x4d3b65,'userProfileId':_0x574cab[_0xed5c('0x3e')]},'raw':!![]})[_0xed5c('0x14')](function(_0x42c4f9){if(_0x42c4f9&&_0x42c4f9['autoAssociation']===0x0){return db[_0xed5c('0x3f')]['create']({'name':_0x215b9d['name'],'resourceId':_0x215b9d['id'],'type':_0x42c4f9[_0xed5c('0x1c')],'sectionId':_0x42c4f9['id']},{})['then'](function(){return _0x34c9a2;});}else{return _0x34c9a2;}})[_0xed5c('0x34')](function(_0x53899b){logger[_0xed5c('0x40')](_0xed5c('0x41'),_0x53899b);throw _0x53899b;});}return _0x34c9a2;})['then'](respondWithResult(_0x1011bd,0xc9))[_0xed5c('0x34')](handleError(_0x1011bd,null));};exports['update']=function(_0x3e9d3f,_0x4fd627){if(_0x3e9d3f['body']['id']){delete _0x3e9d3f['body']['id'];}return db[_0xed5c('0x2f')]['find']({'where':{'id':_0x3e9d3f['params']['id']}})[_0xed5c('0x14')](handleEntityNotFound(_0x4fd627,null))['then'](saveUpdates(_0x3e9d3f[_0xed5c('0x3a')],null))['then'](function(_0x15b81d){if(!_0x15b81d)return;var _0x58adf6=_0x15b81d[_0xed5c('0x16')]({'plain':!![]});return _0x58adf6;})[_0xed5c('0x14')](function(_0x325c35){var _0xde6820=new Redis(config[_0xed5c('0x7')]);_0xde6820['publish'](_0xed5c('0x42'),JSON['stringify'](_['pick'](_0x325c35,['id',_0xed5c('0x1c'),_0xed5c('0x43')])));return _0x325c35;})[_0xed5c('0x14')](respondWithResult(_0x4fd627,null))[_0xed5c('0x34')](handleError(_0x4fd627,null));};exports['destroy']=function(_0x25e9d4,_0x1e0e35){return db['SquareProject']['find']({'where':{'id':_0x25e9d4[_0xed5c('0x44')]['id']}})['then'](handleEntityNotFound(_0x1e0e35,null))[_0xed5c('0x14')](removeEntity(_0x1e0e35,null))[_0xed5c('0x34')](handleError(_0x1e0e35,null));};