d0f2a728845a14ed90b9d465d7a89fca1f86f214
[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 _0x27ca=['update','then','destroy','get','UserProfileResource','agi','stringify','end','sendStatus','error','name','send','index','SquareProject','rawAttributes','fieldName','type','map','query','keys','filters','intersection','model','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','catch','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','SquareProjects','UserProfileSection','find','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','body','production','../../components/parsers/qs','../../config/environment','../../mysqldb','defaults','redis','localhost','./squareProject.socket','register','status','offset','undefined','limit','count','set','Content-Range'];(function(_0x2e4a84,_0x3de6e1){var _0x16ffe8=function(_0x43382f){while(--_0x43382f){_0x2e4a84['push'](_0x2e4a84['shift']());}};_0x16ffe8(++_0x3de6e1);}(_0x27ca,0xb7));var _0xa27c=function(_0x376b45,_0x5964fb){_0x376b45=_0x376b45-0x0;var _0x2341b3=_0x27ca[_0x376b45];return _0x2341b3;};'use strict';var _=require('lodash');var Redis=require('ioredis');var qs=require(_0xa27c('0x0'));var logger=require('../../config/logger')('api');var config=require(_0xa27c('0x1'));var db=require(_0xa27c('0x2'))['db'];config['redis']=_[_0xa27c('0x3')](config[_0xa27c('0x4')],{'host':_0xa27c('0x5'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xa27c('0x6'))[_0xa27c('0x7')](socket);function respondWithResult(_0x2f0e4d,_0x378788){_0x378788=_0x378788||0xc8;return function(_0x425855){if(_0x425855){return _0x2f0e4d[_0xa27c('0x8')](_0x378788)['json'](_0x425855);}};}function respondWithFilteredResult(_0x347c69,_0x5a5b2c){return function(_0x4f1f88){if(_0x4f1f88){var _0xc944a4=typeof _0x5a5b2c[_0xa27c('0x9')]===_0xa27c('0xa')&&typeof _0x5a5b2c[_0xa27c('0xb')]===_0xa27c('0xa');var _0x2639c3=_0x4f1f88[_0xa27c('0xc')];var _0x520fcb=_0xc944a4?0x0:_0x5a5b2c['offset'];var _0x13e7ab=_0xc944a4?_0x4f1f88[_0xa27c('0xc')]:_0x5a5b2c['offset']+_0x5a5b2c[_0xa27c('0xb')];var _0xb41fba;if(_0x13e7ab>=_0x2639c3){_0x13e7ab=_0x2639c3;_0xb41fba=0xc8;}else{_0xb41fba=0xce;}_0x347c69[_0xa27c('0x8')](_0xb41fba);return _0x347c69[_0xa27c('0xd')](_0xa27c('0xe'),_0x520fcb+'-'+_0x13e7ab+'/'+_0x2639c3)['json'](_0x4f1f88);}return null;};}function saveUpdates(_0x365c65){return function(_0x4e88f0){if(_0x4e88f0){return _0x4e88f0[_0xa27c('0xf')](_0x365c65)[_0xa27c('0x10')](function(_0x380c4f){return _0x380c4f;});}return null;};}function removeEntity(_0x3f66f1){return function(_0x28f7e8){if(_0x28f7e8){return _0x28f7e8[_0xa27c('0x11')]()[_0xa27c('0x10')](function(){var _0x364867=_0x28f7e8[_0xa27c('0x12')]({'plain':!![]});var _0xf591bc='SquareProjects';return db[_0xa27c('0x13')]['destroy']({'where':{'type':_0xf591bc,'resourceId':_0x364867['id']}})['then'](function(){return _0x28f7e8;});})[_0xa27c('0x10')](function(){var _0x5af8b4=new Redis(config[_0xa27c('0x4')]);_0x5af8b4['publish'](_0xa27c('0x14'),JSON[_0xa27c('0x15')]({'id':_0x28f7e8['id'],'deleted':!![]}));})[_0xa27c('0x10')](function(){_0x3f66f1[_0xa27c('0x8')](0xcc)[_0xa27c('0x16')]();});}};}function handleEntityNotFound(_0x35294d){return function(_0x149bc9){if(!_0x149bc9){_0x35294d[_0xa27c('0x17')](0x194);}return _0x149bc9;};}function handleError(_0x51e060,_0xa974e4){_0xa974e4=_0xa974e4||0x1f4;return function(_0x11ef9a){logger[_0xa27c('0x18')](_0x11ef9a['stack']);if(_0x11ef9a['name']){delete _0x11ef9a[_0xa27c('0x19')];}_0x51e060[_0xa27c('0x8')](_0xa974e4)[_0xa27c('0x1a')](_0x11ef9a);};}exports[_0xa27c('0x1b')]=function(_0x350b8c,_0xa81f6e){var _0x227f94={},_0x462b51={},_0x4fbe00={'count':0x0,'rows':[]};var _0x265478=_['map'](db[_0xa27c('0x1c')][_0xa27c('0x1d')],function(_0x33ff3a){return{'name':_0x33ff3a[_0xa27c('0x1e')],'type':_0x33ff3a[_0xa27c('0x1f')]['key']};});_0x462b51['model']=_[_0xa27c('0x20')](_0x265478,_0xa27c('0x19'));_0x462b51[_0xa27c('0x21')]=_[_0xa27c('0x22')](_0x350b8c[_0xa27c('0x21')]);_0x462b51[_0xa27c('0x23')]=_[_0xa27c('0x24')](_0x462b51[_0xa27c('0x25')],_0x462b51['query']);_0x227f94[_0xa27c('0x26')]=_[_0xa27c('0x24')](_0x462b51['model'],qs[_0xa27c('0x27')](_0x350b8c[_0xa27c('0x21')][_0xa27c('0x27')]));_0x227f94[_0xa27c('0x26')]=_0x227f94['attributes'][_0xa27c('0x28')]?_0x227f94['attributes']:_0x462b51[_0xa27c('0x25')];if(!_0x350b8c[_0xa27c('0x21')]['hasOwnProperty'](_0xa27c('0x29'))){_0x227f94[_0xa27c('0xb')]=qs[_0xa27c('0xb')](_0x350b8c['query'][_0xa27c('0xb')]);_0x227f94['offset']=qs[_0xa27c('0x9')](_0x350b8c[_0xa27c('0x21')][_0xa27c('0x9')]);}_0x227f94[_0xa27c('0x2a')]=qs[_0xa27c('0x2b')](_0x350b8c[_0xa27c('0x21')][_0xa27c('0x2b')]);_0x227f94[_0xa27c('0x2c')]=qs['filters'](_[_0xa27c('0x2d')](_0x350b8c[_0xa27c('0x21')],_0x462b51[_0xa27c('0x23')]),_0x265478);if(_0x350b8c['query'][_0xa27c('0x2e')]){_0x227f94[_0xa27c('0x2c')]=_[_0xa27c('0x2f')](_0x227f94['where'],{'$or':_[_0xa27c('0x20')](_0x265478,function(_0x36485e){if(_0x36485e[_0xa27c('0x1f')]!==_0xa27c('0x30')){var _0x42fbae={};_0x42fbae[_0x36485e['name']]={'$like':'%'+_0x350b8c[_0xa27c('0x21')]['filter']+'%'};return _0x42fbae;}})});}_0x227f94=_['merge']({},_0x227f94,_0x350b8c[_0xa27c('0x31')]);var _0x4911e9={'where':_0x227f94[_0xa27c('0x2c')]};return db[_0xa27c('0x1c')][_0xa27c('0xc')](_0x4911e9)['then'](function(_0x2f0e9d){_0x4fbe00[_0xa27c('0xc')]=_0x2f0e9d;if(_0x350b8c[_0xa27c('0x21')][_0xa27c('0x32')]){_0x227f94['include']=[{'all':!![]}];}return db['SquareProject'][_0xa27c('0x33')](_0x227f94);})['then'](function(_0x4c2566){_0x4fbe00[_0xa27c('0x34')]=_0x4c2566;return _0x4fbe00;})[_0xa27c('0x10')](respondWithFilteredResult(_0xa81f6e,_0x227f94))[_0xa27c('0x35')](handleError(_0xa81f6e,null));};exports['show']=function(_0x4726f2,_0xc07199){var _0x54e241={'raw':![],'where':{'id':_0x4726f2['params']['id']}},_0x6cb924={};_0x6cb924['model']=_[_0xa27c('0x22')](db[_0xa27c('0x1c')][_0xa27c('0x1d')]);_0x6cb924[_0xa27c('0x21')]=_[_0xa27c('0x22')](_0x4726f2[_0xa27c('0x21')]);_0x6cb924[_0xa27c('0x23')]=_[_0xa27c('0x24')](_0x6cb924['model'],_0x6cb924[_0xa27c('0x21')]);_0x54e241[_0xa27c('0x26')]=_[_0xa27c('0x24')](_0x6cb924[_0xa27c('0x25')],qs[_0xa27c('0x27')](_0x4726f2[_0xa27c('0x21')][_0xa27c('0x27')]));_0x54e241[_0xa27c('0x26')]=_0x54e241['attributes'][_0xa27c('0x28')]?_0x54e241[_0xa27c('0x26')]:_0x6cb924[_0xa27c('0x25')];if(_0x4726f2[_0xa27c('0x21')][_0xa27c('0x32')]){_0x54e241['include']=[{'all':!![]}];}_0x54e241=_[_0xa27c('0x2f')]({},_0x54e241,_0x4726f2['options']);return db[_0xa27c('0x1c')]['find'](_0x54e241)[_0xa27c('0x10')](handleEntityNotFound(_0xc07199,null))[_0xa27c('0x10')](respondWithResult(_0xc07199,null))['catch'](handleError(_0xc07199,null));};exports['create']=function(_0x2c59c1,_0x3da2e9){return db['SquareProject'][_0xa27c('0x36')](_0x2c59c1['body'],{})[_0xa27c('0x10')](function(_0x34d033){var _0x4d4c61=_0x2c59c1[_0xa27c('0x37')][_0xa27c('0x12')]({'plain':!![]});if(!_0x4d4c61)throw new Error(_0xa27c('0x38'));if(_0x4d4c61[_0xa27c('0x39')]===_0xa27c('0x37')){var _0x2d0aeb=_0x34d033['get']({'plain':!![]});var _0x4e3d06=_0xa27c('0x3a');return db[_0xa27c('0x3b')][_0xa27c('0x3c')]({'where':{'name':_0x4e3d06,'userProfileId':_0x4d4c61[_0xa27c('0x3d')]},'raw':!![]})[_0xa27c('0x10')](function(_0x321a8d){if(_0x321a8d&&_0x321a8d['autoAssociation']===0x0){return db[_0xa27c('0x13')][_0xa27c('0x36')]({'name':_0x2d0aeb[_0xa27c('0x19')],'resourceId':_0x2d0aeb['id'],'type':_0x321a8d[_0xa27c('0x19')],'sectionId':_0x321a8d['id']},{})[_0xa27c('0x10')](function(){return _0x34d033;});}else{return _0x34d033;}})[_0xa27c('0x35')](function(_0x2a740c){logger['error'](_0xa27c('0x3e'),_0x2a740c);throw _0x2a740c;});}return _0x34d033;})[_0xa27c('0x10')](respondWithResult(_0x3da2e9,0xc9))[_0xa27c('0x35')](handleError(_0x3da2e9,null));};exports[_0xa27c('0xf')]=function(_0x55b7b3,_0x3f38c9){if(_0x55b7b3['body']['id']){delete _0x55b7b3['body']['id'];}return db[_0xa27c('0x1c')][_0xa27c('0x3c')]({'where':{'id':_0x55b7b3[_0xa27c('0x3f')]['id']}})[_0xa27c('0x10')](handleEntityNotFound(_0x3f38c9,null))[_0xa27c('0x10')](saveUpdates(_0x55b7b3[_0xa27c('0x40')],null))['then'](function(_0x33b3ae){if(!_0x33b3ae)return;var _0x120577=_0x33b3ae[_0xa27c('0x12')]({'plain':!![]});return _0x120577;})[_0xa27c('0x10')](function(_0x531d74){var _0x1a9e98=new Redis(config[_0xa27c('0x4')]);_0x1a9e98['publish'](_0xa27c('0x14'),JSON[_0xa27c('0x15')](_[_0xa27c('0x2d')](_0x531d74,['id',_0xa27c('0x19'),_0xa27c('0x41')])));return _0x531d74;})[_0xa27c('0x10')](respondWithResult(_0x3f38c9,null))[_0xa27c('0x35')](handleError(_0x3f38c9,null));};exports['destroy']=function(_0x21175c,_0xa81035){return db[_0xa27c('0x1c')]['find']({'where':{'id':_0x21175c[_0xa27c('0x3f')]['id']}})[_0xa27c('0x10')](handleEntityNotFound(_0xa81035,null))['then'](removeEntity(_0xa81035,null))[_0xa27c('0x35')](handleError(_0xa81035,null));};