Built motion from commit 06eb8eb0.|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 _0x66a6=['update','then','SquareProjects','UserProfileResource','destroy','publish','stringify','end','sendStatus','name','status','send','index','map','SquareProject','rawAttributes','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','offset','order','sort','where','filter','merge','type','VIRTUAL','options','includeAll','include','rows','catch','show','keys','find','user','get','role','autoAssociation','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','body','agi','pick','production','lodash','../../components/parsers/qs','../../config/logger','../../config/environment','../../mysqldb','redis','defaults','./squareProject.socket','json','undefined','limit','count','set','Content-Range'];(function(_0x43b4b5,_0x3efc1b){var _0x2df432=function(_0x10b3bb){while(--_0x10b3bb){_0x43b4b5['push'](_0x43b4b5['shift']());}};_0x2df432(++_0x3efc1b);}(_0x66a6,0x1c0));var _0x666a=function(_0x2378ce,_0x1ae0fb){_0x2378ce=_0x2378ce-0x0;var _0x18cfa8=_0x66a6[_0x2378ce];return _0x18cfa8;};'use strict';var _=require(_0x666a('0x0'));var Redis=require('ioredis');var qs=require(_0x666a('0x1'));var logger=require(_0x666a('0x2'))('api');var config=require(_0x666a('0x3'));var db=require(_0x666a('0x4'))['db'];config[_0x666a('0x5')]=_[_0x666a('0x6')](config[_0x666a('0x5')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x666a('0x5')]));require(_0x666a('0x7'))['register'](socket);function respondWithResult(_0x28694f,_0x5d1190){_0x5d1190=_0x5d1190||0xc8;return function(_0x157faa){if(_0x157faa){return _0x28694f['status'](_0x5d1190)[_0x666a('0x8')](_0x157faa);}};}function respondWithFilteredResult(_0x4964e9,_0x2272ba){return function(_0x11e170){if(_0x11e170){var _0x14aef8=typeof _0x2272ba['offset']===_0x666a('0x9')&&typeof _0x2272ba[_0x666a('0xa')]===_0x666a('0x9');var _0x37e13a=_0x11e170[_0x666a('0xb')];var _0x349f55=_0x14aef8?0x0:_0x2272ba['offset'];var _0x295809=_0x14aef8?_0x11e170[_0x666a('0xb')]:_0x2272ba['offset']+_0x2272ba['limit'];var _0x34d008;if(_0x295809>=_0x37e13a){_0x295809=_0x37e13a;_0x34d008=0xc8;}else{_0x34d008=0xce;}_0x4964e9['status'](_0x34d008);return _0x4964e9[_0x666a('0xc')](_0x666a('0xd'),_0x349f55+'-'+_0x295809+'/'+_0x37e13a)['json'](_0x11e170);}return null;};}function saveUpdates(_0x310009){return function(_0x4a4a1b){if(_0x4a4a1b){return _0x4a4a1b[_0x666a('0xe')](_0x310009)['then'](function(_0x639dd2){return _0x639dd2;});}return null;};}function removeEntity(_0x507df8){return function(_0x14fb3b){if(_0x14fb3b){return _0x14fb3b['destroy']()[_0x666a('0xf')](function(){var _0x2dd00f=_0x14fb3b['get']({'plain':!![]});var _0x3db5ce=_0x666a('0x10');return db[_0x666a('0x11')][_0x666a('0x12')]({'where':{'type':_0x3db5ce,'resourceId':_0x2dd00f['id']}})[_0x666a('0xf')](function(){return _0x14fb3b;});})[_0x666a('0xf')](function(){var _0x4b7b4a=new Redis(config[_0x666a('0x5')]);_0x4b7b4a[_0x666a('0x13')]('agi',JSON[_0x666a('0x14')]({'id':_0x14fb3b['id'],'deleted':!![]}));})['then'](function(){_0x507df8['status'](0xcc)[_0x666a('0x15')]();});}};}function handleEntityNotFound(_0x4c6412){return function(_0x348420){if(!_0x348420){_0x4c6412[_0x666a('0x16')](0x194);}return _0x348420;};}function handleError(_0x1f1cea,_0x4487c8){_0x4487c8=_0x4487c8||0x1f4;return function(_0x546b01){logger['error'](_0x546b01['stack']);if(_0x546b01[_0x666a('0x17')]){delete _0x546b01[_0x666a('0x17')];}_0x1f1cea[_0x666a('0x18')](_0x4487c8)[_0x666a('0x19')](_0x546b01);};}exports[_0x666a('0x1a')]=function(_0x20d27f,_0x4cc909){var _0x2af91b={},_0x41df5f={},_0x5cda41={'count':0x0,'rows':[]};var _0x4e5b9a=_[_0x666a('0x1b')](db[_0x666a('0x1c')][_0x666a('0x1d')],function(_0x3e0dd1){return{'name':_0x3e0dd1['fieldName'],'type':_0x3e0dd1['type'][_0x666a('0x1e')]};});_0x41df5f[_0x666a('0x1f')]=_[_0x666a('0x1b')](_0x4e5b9a,'name');_0x41df5f[_0x666a('0x20')]=_['keys'](_0x20d27f[_0x666a('0x20')]);_0x41df5f[_0x666a('0x21')]=_[_0x666a('0x22')](_0x41df5f['model'],_0x41df5f[_0x666a('0x20')]);_0x2af91b[_0x666a('0x23')]=_[_0x666a('0x22')](_0x41df5f['model'],qs[_0x666a('0x24')](_0x20d27f[_0x666a('0x20')][_0x666a('0x24')]));_0x2af91b['attributes']=_0x2af91b[_0x666a('0x23')][_0x666a('0x25')]?_0x2af91b[_0x666a('0x23')]:_0x41df5f[_0x666a('0x1f')];if(!_0x20d27f[_0x666a('0x20')][_0x666a('0x26')]('nolimit')){_0x2af91b[_0x666a('0xa')]=qs[_0x666a('0xa')](_0x20d27f['query'][_0x666a('0xa')]);_0x2af91b['offset']=qs['offset'](_0x20d27f['query'][_0x666a('0x27')]);}_0x2af91b[_0x666a('0x28')]=qs[_0x666a('0x29')](_0x20d27f['query']['sort']);_0x2af91b[_0x666a('0x2a')]=qs[_0x666a('0x21')](_['pick'](_0x20d27f['query'],_0x41df5f['filters']),_0x4e5b9a);if(_0x20d27f[_0x666a('0x20')][_0x666a('0x2b')]){_0x2af91b[_0x666a('0x2a')]=_[_0x666a('0x2c')](_0x2af91b['where'],{'$or':_['map'](_0x4e5b9a,function(_0x6569e0){if(_0x6569e0[_0x666a('0x2d')]!==_0x666a('0x2e')){var _0x2a0e51={};_0x2a0e51[_0x6569e0[_0x666a('0x17')]]={'$like':'%'+_0x20d27f['query'][_0x666a('0x2b')]+'%'};return _0x2a0e51;}})});}_0x2af91b=_[_0x666a('0x2c')]({},_0x2af91b,_0x20d27f[_0x666a('0x2f')]);var _0x29adf5={'where':_0x2af91b[_0x666a('0x2a')]};return db[_0x666a('0x1c')]['count'](_0x29adf5)['then'](function(_0x5c3aff){_0x5cda41[_0x666a('0xb')]=_0x5c3aff;if(_0x20d27f[_0x666a('0x20')][_0x666a('0x30')]){_0x2af91b[_0x666a('0x31')]=[{'all':!![]}];}return db[_0x666a('0x1c')]['findAll'](_0x2af91b);})[_0x666a('0xf')](function(_0x57b404){_0x5cda41[_0x666a('0x32')]=_0x57b404;return _0x5cda41;})[_0x666a('0xf')](respondWithFilteredResult(_0x4cc909,_0x2af91b))[_0x666a('0x33')](handleError(_0x4cc909,null));};exports[_0x666a('0x34')]=function(_0x3aa157,_0x18265f){var _0x320adb={'raw':![],'where':{'id':_0x3aa157['params']['id']}},_0x2468e7={};_0x2468e7[_0x666a('0x1f')]=_[_0x666a('0x35')](db['SquareProject'][_0x666a('0x1d')]);_0x2468e7[_0x666a('0x20')]=_[_0x666a('0x35')](_0x3aa157['query']);_0x2468e7[_0x666a('0x21')]=_[_0x666a('0x22')](_0x2468e7[_0x666a('0x1f')],_0x2468e7['query']);_0x320adb[_0x666a('0x23')]=_['intersection'](_0x2468e7[_0x666a('0x1f')],qs[_0x666a('0x24')](_0x3aa157[_0x666a('0x20')]['fields']));_0x320adb[_0x666a('0x23')]=_0x320adb[_0x666a('0x23')]['length']?_0x320adb[_0x666a('0x23')]:_0x2468e7[_0x666a('0x1f')];if(_0x3aa157[_0x666a('0x20')][_0x666a('0x30')]){_0x320adb[_0x666a('0x31')]=[{'all':!![]}];}_0x320adb=_[_0x666a('0x2c')]({},_0x320adb,_0x3aa157['options']);return db[_0x666a('0x1c')][_0x666a('0x36')](_0x320adb)[_0x666a('0xf')](handleEntityNotFound(_0x18265f,null))[_0x666a('0xf')](respondWithResult(_0x18265f,null))[_0x666a('0x33')](handleError(_0x18265f,null));};exports['create']=function(_0x37857e,_0x1139d4){return db[_0x666a('0x1c')]['create'](_0x37857e['body'],{})['then'](function(_0x18689a){var _0x26f023=_0x37857e[_0x666a('0x37')][_0x666a('0x38')]({'plain':!![]});if(!_0x26f023)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x26f023[_0x666a('0x39')]==='user'){var _0x389260=_0x18689a['get']({'plain':!![]});var _0x51cc8a=_0x666a('0x10');return db['UserProfileSection']['find']({'where':{'name':_0x51cc8a,'userProfileId':_0x26f023['userProfileId']},'raw':!![]})[_0x666a('0xf')](function(_0x411abb){if(_0x411abb&&_0x411abb[_0x666a('0x3a')]===0x0){return db['UserProfileResource'][_0x666a('0x3b')]({'name':_0x389260['name'],'resourceId':_0x389260['id'],'type':_0x411abb['name'],'sectionId':_0x411abb['id']},{})[_0x666a('0xf')](function(){return _0x18689a;});}else{return _0x18689a;}})[_0x666a('0x33')](function(_0x4c2654){logger['error'](_0x666a('0x3c'),_0x4c2654);throw _0x4c2654;});}return _0x18689a;})[_0x666a('0xf')](respondWithResult(_0x1139d4,0xc9))[_0x666a('0x33')](handleError(_0x1139d4,null));};exports[_0x666a('0xe')]=function(_0xa2516b,_0x2c08d6){if(_0xa2516b['body']['id']){delete _0xa2516b['body']['id'];}return db[_0x666a('0x1c')][_0x666a('0x36')]({'where':{'id':_0xa2516b[_0x666a('0x3d')]['id']}})[_0x666a('0xf')](handleEntityNotFound(_0x2c08d6,null))[_0x666a('0xf')](saveUpdates(_0xa2516b[_0x666a('0x3e')],null))[_0x666a('0xf')](function(_0x2d0df1){if(!_0x2d0df1)return;var _0x5d0965=_0x2d0df1[_0x666a('0x38')]({'plain':!![]});return _0x5d0965;})[_0x666a('0xf')](function(_0x3e8b52){var _0x26fa8c=new Redis(config[_0x666a('0x5')]);_0x26fa8c[_0x666a('0x13')](_0x666a('0x3f'),JSON[_0x666a('0x14')](_[_0x666a('0x40')](_0x3e8b52,['id',_0x666a('0x17'),_0x666a('0x41')])));return _0x3e8b52;})[_0x666a('0xf')](respondWithResult(_0x2c08d6,null))[_0x666a('0x33')](handleError(_0x2c08d6,null));};exports[_0x666a('0x12')]=function(_0x318825,_0x1e8041){return db[_0x666a('0x1c')]['find']({'where':{'id':_0x318825['params']['id']}})['then'](handleEntityNotFound(_0x1e8041,null))[_0x666a('0xf')](removeEntity(_0x1e8041,null))[_0x666a('0x33')](handleError(_0x1e8041,null));};