441cbe6e9243c3c46b059d1c77e247fa0328b50c
[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 _0x0db0=['../../components/parsers/qs','../../config/logger','../../config/environment','../../mysqldb','redis','defaults','socket.io-emitter','./squareProject.socket','register','json','offset','limit','count','status','set','Content-Range','update','destroy','then','get','SquareProjects','UserProfileResource','publish','stringify','end','error','name','send','SquareProject','rawAttributes','fieldName','key','model','map','query','keys','filters','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','catch','show','params','intersection','find','create','body','user','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','agi','production','lodash','ioredis'];(function(_0x54f234,_0xbc5cd6){var _0x1bfbf0=function(_0x4950b3){while(--_0x4950b3){_0x54f234['push'](_0x54f234['shift']());}};_0x1bfbf0(++_0xbc5cd6);}(_0x0db0,0x1da));var _0x00db=function(_0x548200,_0x3241b8){_0x548200=_0x548200-0x0;var _0x1a6d74=_0x0db0[_0x548200];return _0x1a6d74;};'use strict';var _=require(_0x00db('0x0'));var Redis=require(_0x00db('0x1'));var qs=require(_0x00db('0x2'));var logger=require(_0x00db('0x3'))('api');var config=require(_0x00db('0x4'));var db=require(_0x00db('0x5'))['db'];config[_0x00db('0x6')]=_[_0x00db('0x7')](config[_0x00db('0x6')],{'host':'localhost','port':0x18eb});var socket=require(_0x00db('0x8'))(new Redis(config[_0x00db('0x6')]));require(_0x00db('0x9'))[_0x00db('0xa')](socket);function respondWithResult(_0x124cda,_0x45276d){_0x45276d=_0x45276d||0xc8;return function(_0xeb755f){if(_0xeb755f){return _0x124cda['status'](_0x45276d)[_0x00db('0xb')](_0xeb755f);}};}function respondWithFilteredResult(_0x4b6276,_0x36222b){return function(_0x2c695d){if(_0x2c695d){var _0x5d1eb7=typeof _0x36222b[_0x00db('0xc')]==='undefined'&&typeof _0x36222b[_0x00db('0xd')]==='undefined';var _0x4fbf5e=_0x2c695d['count'];var _0x550779=_0x5d1eb7?0x0:_0x36222b[_0x00db('0xc')];var _0x217761=_0x5d1eb7?_0x2c695d[_0x00db('0xe')]:_0x36222b[_0x00db('0xc')]+_0x36222b[_0x00db('0xd')];var _0x333770;if(_0x217761>=_0x4fbf5e){_0x217761=_0x4fbf5e;_0x333770=0xc8;}else{_0x333770=0xce;}_0x4b6276[_0x00db('0xf')](_0x333770);return _0x4b6276[_0x00db('0x10')](_0x00db('0x11'),_0x550779+'-'+_0x217761+'/'+_0x4fbf5e)['json'](_0x2c695d);}return null;};}function saveUpdates(_0x3193e5){return function(_0x13994f){if(_0x13994f){return _0x13994f[_0x00db('0x12')](_0x3193e5)['then'](function(_0x1e6401){return _0x1e6401;});}return null;};}function removeEntity(_0x50ab15){return function(_0x22a475){if(_0x22a475){return _0x22a475[_0x00db('0x13')]()[_0x00db('0x14')](function(){var _0x176662=_0x22a475[_0x00db('0x15')]({'plain':!![]});var _0x26d253=_0x00db('0x16');return db[_0x00db('0x17')][_0x00db('0x13')]({'where':{'type':_0x26d253,'resourceId':_0x176662['id']}})[_0x00db('0x14')](function(){return _0x22a475;});})[_0x00db('0x14')](function(){var _0x49e282=new Redis(config[_0x00db('0x6')]);_0x49e282[_0x00db('0x18')]('agi',JSON[_0x00db('0x19')]({'id':_0x22a475['id'],'deleted':!![]}));})[_0x00db('0x14')](function(){_0x50ab15[_0x00db('0xf')](0xcc)[_0x00db('0x1a')]();});}};}function handleEntityNotFound(_0x507215){return function(_0x48679e){if(!_0x48679e){_0x507215['sendStatus'](0x194);}return _0x48679e;};}function handleError(_0x3573d1,_0xccb5ae){_0xccb5ae=_0xccb5ae||0x1f4;return function(_0x86faad){logger[_0x00db('0x1b')](_0x86faad['stack']);if(_0x86faad[_0x00db('0x1c')]){delete _0x86faad[_0x00db('0x1c')];}_0x3573d1[_0x00db('0xf')](_0xccb5ae)[_0x00db('0x1d')](_0x86faad);};}exports['index']=function(_0xa5da91,_0x369a22){var _0x5813d8={},_0x355f2c={},_0x2fe905={'count':0x0,'rows':[]};var _0x2690bb=_['map'](db[_0x00db('0x1e')][_0x00db('0x1f')],function(_0x4ef96d){return{'name':_0x4ef96d[_0x00db('0x20')],'type':_0x4ef96d['type'][_0x00db('0x21')]};});_0x355f2c[_0x00db('0x22')]=_[_0x00db('0x23')](_0x2690bb,_0x00db('0x1c'));_0x355f2c[_0x00db('0x24')]=_[_0x00db('0x25')](_0xa5da91[_0x00db('0x24')]);_0x355f2c[_0x00db('0x26')]=_['intersection'](_0x355f2c['model'],_0x355f2c[_0x00db('0x24')]);_0x5813d8[_0x00db('0x27')]=_['intersection'](_0x355f2c['model'],qs[_0x00db('0x28')](_0xa5da91['query']['fields']));_0x5813d8['attributes']=_0x5813d8[_0x00db('0x27')][_0x00db('0x29')]?_0x5813d8['attributes']:_0x355f2c[_0x00db('0x22')];if(!_0xa5da91[_0x00db('0x24')][_0x00db('0x2a')](_0x00db('0x2b'))){_0x5813d8[_0x00db('0xd')]=qs['limit'](_0xa5da91[_0x00db('0x24')][_0x00db('0xd')]);_0x5813d8['offset']=qs['offset'](_0xa5da91[_0x00db('0x24')][_0x00db('0xc')]);}_0x5813d8[_0x00db('0x2c')]=qs[_0x00db('0x2d')](_0xa5da91[_0x00db('0x24')]['sort']);_0x5813d8[_0x00db('0x2e')]=qs['filters'](_[_0x00db('0x2f')](_0xa5da91[_0x00db('0x24')],_0x355f2c['filters']),_0x2690bb);if(_0xa5da91[_0x00db('0x24')][_0x00db('0x30')]){_0x5813d8[_0x00db('0x2e')]=_[_0x00db('0x31')](_0x5813d8[_0x00db('0x2e')],{'$or':_[_0x00db('0x23')](_0x2690bb,function(_0x271d6e){if(_0x271d6e['type']!==_0x00db('0x32')){var _0x437053={};_0x437053[_0x271d6e[_0x00db('0x1c')]]={'$like':'%'+_0xa5da91[_0x00db('0x24')][_0x00db('0x30')]+'%'};return _0x437053;}})});}_0x5813d8=_[_0x00db('0x31')]({},_0x5813d8,_0xa5da91['options']);var _0x343a25={'where':_0x5813d8[_0x00db('0x2e')]};return db['SquareProject'][_0x00db('0xe')](_0x343a25)['then'](function(_0x33c36b){_0x2fe905['count']=_0x33c36b;if(_0xa5da91[_0x00db('0x24')][_0x00db('0x33')]){_0x5813d8[_0x00db('0x34')]=[{'all':!![]}];}return db[_0x00db('0x1e')][_0x00db('0x35')](_0x5813d8);})[_0x00db('0x14')](function(_0x1b5e15){_0x2fe905[_0x00db('0x36')]=_0x1b5e15;return _0x2fe905;})[_0x00db('0x14')](respondWithFilteredResult(_0x369a22,_0x5813d8))[_0x00db('0x37')](handleError(_0x369a22,null));};exports[_0x00db('0x38')]=function(_0x504b05,_0x86dcec){var _0x4216e0={'raw':![],'where':{'id':_0x504b05[_0x00db('0x39')]['id']}},_0x260227={};_0x260227[_0x00db('0x22')]=_[_0x00db('0x25')](db['SquareProject'][_0x00db('0x1f')]);_0x260227[_0x00db('0x24')]=_[_0x00db('0x25')](_0x504b05[_0x00db('0x24')]);_0x260227[_0x00db('0x26')]=_[_0x00db('0x3a')](_0x260227[_0x00db('0x22')],_0x260227[_0x00db('0x24')]);_0x4216e0[_0x00db('0x27')]=_[_0x00db('0x3a')](_0x260227[_0x00db('0x22')],qs[_0x00db('0x28')](_0x504b05[_0x00db('0x24')][_0x00db('0x28')]));_0x4216e0[_0x00db('0x27')]=_0x4216e0[_0x00db('0x27')][_0x00db('0x29')]?_0x4216e0['attributes']:_0x260227[_0x00db('0x22')];if(_0x504b05['query'][_0x00db('0x33')]){_0x4216e0[_0x00db('0x34')]=[{'all':!![]}];}_0x4216e0=_[_0x00db('0x31')]({},_0x4216e0,_0x504b05['options']);return db['SquareProject'][_0x00db('0x3b')](_0x4216e0)['then'](handleEntityNotFound(_0x86dcec,null))['then'](respondWithResult(_0x86dcec,null))[_0x00db('0x37')](handleError(_0x86dcec,null));};exports[_0x00db('0x3c')]=function(_0x174b11,_0x1145be){return db['SquareProject'][_0x00db('0x3c')](_0x174b11[_0x00db('0x3d')],{})[_0x00db('0x14')](function(_0x5ba17e){var _0x520114=_0x174b11[_0x00db('0x3e')][_0x00db('0x15')]({'plain':!![]});if(!_0x520114)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x520114['role']===_0x00db('0x3e')){var _0x57a43b=_0x5ba17e[_0x00db('0x15')]({'plain':!![]});var _0x255b37=_0x00db('0x16');return db[_0x00db('0x3f')][_0x00db('0x3b')]({'where':{'name':_0x255b37,'userProfileId':_0x520114['userProfileId']},'raw':!![]})[_0x00db('0x14')](function(_0xa9f3d){if(_0xa9f3d&&_0xa9f3d[_0x00db('0x40')]===0x0){return db['UserProfileResource'][_0x00db('0x3c')]({'name':_0x57a43b[_0x00db('0x1c')],'resourceId':_0x57a43b['id'],'type':_0xa9f3d[_0x00db('0x1c')],'sectionId':_0xa9f3d['id']},{})['then'](function(){return _0x5ba17e;});}else{return _0x5ba17e;}})['catch'](function(_0x3a41e4){logger['error'](_0x00db('0x41'),_0x3a41e4);throw _0x3a41e4;});}return _0x5ba17e;})['then'](respondWithResult(_0x1145be,0xc9))['catch'](handleError(_0x1145be,null));};exports[_0x00db('0x12')]=function(_0x228d20,_0x269ccf){if(_0x228d20['body']['id']){delete _0x228d20[_0x00db('0x3d')]['id'];}return db[_0x00db('0x1e')][_0x00db('0x3b')]({'where':{'id':_0x228d20[_0x00db('0x39')]['id']}})[_0x00db('0x14')](handleEntityNotFound(_0x269ccf,null))[_0x00db('0x14')](saveUpdates(_0x228d20[_0x00db('0x3d')],null))[_0x00db('0x14')](function(_0x32ba9b){if(!_0x32ba9b)return;var _0x5e24dd=_0x32ba9b[_0x00db('0x15')]({'plain':!![]});return _0x5e24dd;})[_0x00db('0x14')](function(_0x29ed7a){var _0x3455d5=new Redis(config[_0x00db('0x6')]);_0x3455d5[_0x00db('0x18')](_0x00db('0x42'),JSON[_0x00db('0x19')](_[_0x00db('0x2f')](_0x29ed7a,['id',_0x00db('0x1c'),_0x00db('0x43')])));return _0x29ed7a;})['then'](respondWithResult(_0x269ccf,null))[_0x00db('0x37')](handleError(_0x269ccf,null));};exports[_0x00db('0x13')]=function(_0x405673,_0x159314){return db['SquareProject'][_0x00db('0x3b')]({'where':{'id':_0x405673[_0x00db('0x39')]['id']}})[_0x00db('0x14')](handleEntityNotFound(_0x159314,null))[_0x00db('0x14')](removeEntity(_0x159314,null))[_0x00db('0x37')](handleError(_0x159314,null));};