e534303b4b5b4fda30d4008c346a87c0383657ca
[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 _0xb276=['merge','options','SquareProject','includeAll','findAll','length','find','catch','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','get','publish','agi','lodash','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','./squareProject.socket','register','status','json','offset','limit','undefined','count','set','Content-Range','update','destroy','then','SquareProjects','stringify','end','sendStatus','error','name','send','map','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL'];(function(_0x13bf70,_0x1d6a0b){var _0x2d1e30=function(_0x42e490){while(--_0x42e490){_0x13bf70['push'](_0x13bf70['shift']());}};_0x2d1e30(++_0x1d6a0b);}(_0xb276,0x1e7));var _0x6b27=function(_0x93942f,_0xb48547){_0x93942f=_0x93942f-0x0;var _0x23fcd8=_0xb276[_0x93942f];return _0x23fcd8;};'use strict';var _=require(_0x6b27('0x0'));var Redis=require(_0x6b27('0x1'));var qs=require(_0x6b27('0x2'));var logger=require(_0x6b27('0x3'))(_0x6b27('0x4'));var config=require(_0x6b27('0x5'));var db=require(_0x6b27('0x6'))['db'];config[_0x6b27('0x7')]=_[_0x6b27('0x8')](config[_0x6b27('0x7')],{'host':_0x6b27('0x9'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x6b27('0x7')]));require(_0x6b27('0xa'))[_0x6b27('0xb')](socket);function respondWithResult(_0x1c8d11,_0x6cc7e1){_0x6cc7e1=_0x6cc7e1||0xc8;return function(_0x37c1d5){if(_0x37c1d5){return _0x1c8d11[_0x6b27('0xc')](_0x6cc7e1)[_0x6b27('0xd')](_0x37c1d5);}};}function respondWithFilteredResult(_0x15507c,_0x1c49c9){return function(_0x6740f6){if(_0x6740f6){var _0x547657=typeof _0x1c49c9[_0x6b27('0xe')]==='undefined'&&typeof _0x1c49c9[_0x6b27('0xf')]===_0x6b27('0x10');var _0x8c6cd6=_0x6740f6[_0x6b27('0x11')];var _0x2379b2=_0x547657?0x0:_0x1c49c9['offset'];var _0x103604=_0x547657?_0x6740f6[_0x6b27('0x11')]:_0x1c49c9['offset']+_0x1c49c9['limit'];var _0x1b83ad;if(_0x103604>=_0x8c6cd6){_0x103604=_0x8c6cd6;_0x1b83ad=0xc8;}else{_0x1b83ad=0xce;}_0x15507c[_0x6b27('0xc')](_0x1b83ad);return _0x15507c[_0x6b27('0x12')](_0x6b27('0x13'),_0x2379b2+'-'+_0x103604+'/'+_0x8c6cd6)[_0x6b27('0xd')](_0x6740f6);}return null;};}function saveUpdates(_0xec3f68){return function(_0x1fb12f){if(_0x1fb12f){return _0x1fb12f[_0x6b27('0x14')](_0xec3f68)['then'](function(_0x3e38c1){return _0x3e38c1;});}return null;};}function removeEntity(_0x944e93){return function(_0x7144fe){if(_0x7144fe){return _0x7144fe[_0x6b27('0x15')]()[_0x6b27('0x16')](function(){var _0x280ca3=_0x7144fe['get']({'plain':!![]});var _0x32c825=_0x6b27('0x17');return db['UserProfileResource'][_0x6b27('0x15')]({'where':{'type':_0x32c825,'resourceId':_0x280ca3['id']}})[_0x6b27('0x16')](function(){return _0x7144fe;});})[_0x6b27('0x16')](function(){var _0x2b6f1a=new Redis(config['redis']);_0x2b6f1a['publish']('agi',JSON[_0x6b27('0x18')]({'id':_0x7144fe['id'],'deleted':!![]}));})[_0x6b27('0x16')](function(){_0x944e93[_0x6b27('0xc')](0xcc)[_0x6b27('0x19')]();});}};}function handleEntityNotFound(_0x4dfb46){return function(_0x37fda9){if(!_0x37fda9){_0x4dfb46[_0x6b27('0x1a')](0x194);}return _0x37fda9;};}function handleError(_0x2a0a3f,_0x274c63){_0x274c63=_0x274c63||0x1f4;return function(_0x5f3356){logger[_0x6b27('0x1b')](_0x5f3356['stack']);if(_0x5f3356[_0x6b27('0x1c')]){delete _0x5f3356['name'];}_0x2a0a3f['status'](_0x274c63)[_0x6b27('0x1d')](_0x5f3356);};}exports['index']=function(_0x1fba2b,_0x46566e){var _0x3c1a58={},_0x1e247f={},_0x88c3d7={'count':0x0,'rows':[]};var _0x53420c=_[_0x6b27('0x1e')](db['SquareProject'][_0x6b27('0x1f')],function(_0x14d580){return{'name':_0x14d580[_0x6b27('0x20')],'type':_0x14d580['type'][_0x6b27('0x21')]};});_0x1e247f[_0x6b27('0x22')]=_[_0x6b27('0x1e')](_0x53420c,'name');_0x1e247f[_0x6b27('0x23')]=_[_0x6b27('0x24')](_0x1fba2b[_0x6b27('0x23')]);_0x1e247f[_0x6b27('0x25')]=_[_0x6b27('0x26')](_0x1e247f['model'],_0x1e247f[_0x6b27('0x23')]);_0x3c1a58[_0x6b27('0x27')]=_[_0x6b27('0x26')](_0x1e247f['model'],qs[_0x6b27('0x28')](_0x1fba2b[_0x6b27('0x23')]['fields']));_0x3c1a58[_0x6b27('0x27')]=_0x3c1a58[_0x6b27('0x27')]['length']?_0x3c1a58[_0x6b27('0x27')]:_0x1e247f[_0x6b27('0x22')];if(!_0x1fba2b[_0x6b27('0x23')][_0x6b27('0x29')](_0x6b27('0x2a'))){_0x3c1a58[_0x6b27('0xf')]=qs[_0x6b27('0xf')](_0x1fba2b[_0x6b27('0x23')][_0x6b27('0xf')]);_0x3c1a58['offset']=qs[_0x6b27('0xe')](_0x1fba2b[_0x6b27('0x23')][_0x6b27('0xe')]);}_0x3c1a58[_0x6b27('0x2b')]=qs[_0x6b27('0x2c')](_0x1fba2b[_0x6b27('0x23')]['sort']);_0x3c1a58[_0x6b27('0x2d')]=qs['filters'](_[_0x6b27('0x2e')](_0x1fba2b[_0x6b27('0x23')],_0x1e247f['filters']),_0x53420c);if(_0x1fba2b[_0x6b27('0x23')][_0x6b27('0x2f')]){_0x3c1a58['where']=_['merge'](_0x3c1a58[_0x6b27('0x2d')],{'$or':_[_0x6b27('0x1e')](_0x53420c,function(_0x378d5f){if(_0x378d5f['type']!==_0x6b27('0x30')){var _0x59aa8a={};_0x59aa8a[_0x378d5f[_0x6b27('0x1c')]]={'$like':'%'+_0x1fba2b[_0x6b27('0x23')][_0x6b27('0x2f')]+'%'};return _0x59aa8a;}})});}_0x3c1a58=_[_0x6b27('0x31')]({},_0x3c1a58,_0x1fba2b[_0x6b27('0x32')]);var _0x49beca={'where':_0x3c1a58['where']};return db[_0x6b27('0x33')][_0x6b27('0x11')](_0x49beca)[_0x6b27('0x16')](function(_0x3c3192){_0x88c3d7[_0x6b27('0x11')]=_0x3c3192;if(_0x1fba2b[_0x6b27('0x23')][_0x6b27('0x34')]){_0x3c1a58['include']=[{'all':!![]}];}return db[_0x6b27('0x33')][_0x6b27('0x35')](_0x3c1a58);})[_0x6b27('0x16')](function(_0x555f1c){_0x88c3d7['rows']=_0x555f1c;return _0x88c3d7;})[_0x6b27('0x16')](respondWithFilteredResult(_0x46566e,_0x3c1a58))['catch'](handleError(_0x46566e,null));};exports['show']=function(_0x63dbef,_0x312eb7){var _0x329b24={'raw':![],'where':{'id':_0x63dbef['params']['id']}},_0x20c9de={};_0x20c9de[_0x6b27('0x22')]=_[_0x6b27('0x24')](db['SquareProject'][_0x6b27('0x1f')]);_0x20c9de[_0x6b27('0x23')]=_['keys'](_0x63dbef[_0x6b27('0x23')]);_0x20c9de[_0x6b27('0x25')]=_[_0x6b27('0x26')](_0x20c9de['model'],_0x20c9de[_0x6b27('0x23')]);_0x329b24['attributes']=_[_0x6b27('0x26')](_0x20c9de[_0x6b27('0x22')],qs[_0x6b27('0x28')](_0x63dbef[_0x6b27('0x23')][_0x6b27('0x28')]));_0x329b24['attributes']=_0x329b24[_0x6b27('0x27')][_0x6b27('0x36')]?_0x329b24[_0x6b27('0x27')]:_0x20c9de[_0x6b27('0x22')];if(_0x63dbef['query'][_0x6b27('0x34')]){_0x329b24['include']=[{'all':!![]}];}_0x329b24=_[_0x6b27('0x31')]({},_0x329b24,_0x63dbef[_0x6b27('0x32')]);return db['SquareProject'][_0x6b27('0x37')](_0x329b24)[_0x6b27('0x16')](handleEntityNotFound(_0x312eb7,null))[_0x6b27('0x16')](respondWithResult(_0x312eb7,null))[_0x6b27('0x38')](handleError(_0x312eb7,null));};exports[_0x6b27('0x39')]=function(_0x1a262a,_0x5adc6a){return db[_0x6b27('0x33')]['create'](_0x1a262a[_0x6b27('0x3a')],{})[_0x6b27('0x16')](function(_0x51a3b0){var _0x5e9f9e=_0x1a262a['user']['get']({'plain':!![]});if(!_0x5e9f9e)throw new Error(_0x6b27('0x3b'));if(_0x5e9f9e[_0x6b27('0x3c')]===_0x6b27('0x3d')){var _0x3ab0a9=_0x51a3b0['get']({'plain':!![]});var _0x64ac1e=_0x6b27('0x17');return db['UserProfileSection'][_0x6b27('0x37')]({'where':{'name':_0x64ac1e,'userProfileId':_0x5e9f9e[_0x6b27('0x3e')]},'raw':!![]})[_0x6b27('0x16')](function(_0x1587ba){if(_0x1587ba&&_0x1587ba['autoAssociation']===0x0){return db['UserProfileResource'][_0x6b27('0x39')]({'name':_0x3ab0a9[_0x6b27('0x1c')],'resourceId':_0x3ab0a9['id'],'type':_0x1587ba[_0x6b27('0x1c')],'sectionId':_0x1587ba['id']},{})[_0x6b27('0x16')](function(){return _0x51a3b0;});}else{return _0x51a3b0;}})['catch'](function(_0x3f7b3d){logger[_0x6b27('0x1b')](_0x6b27('0x3f'),_0x3f7b3d);throw _0x3f7b3d;});}return _0x51a3b0;})[_0x6b27('0x16')](respondWithResult(_0x5adc6a,0xc9))[_0x6b27('0x38')](handleError(_0x5adc6a,null));};exports[_0x6b27('0x14')]=function(_0x32299b,_0x4a59bf){if(_0x32299b[_0x6b27('0x3a')]['id']){delete _0x32299b[_0x6b27('0x3a')]['id'];}return db['SquareProject'][_0x6b27('0x37')]({'where':{'id':_0x32299b['params']['id']}})['then'](handleEntityNotFound(_0x4a59bf,null))['then'](saveUpdates(_0x32299b['body'],null))[_0x6b27('0x16')](function(_0x284a01){if(!_0x284a01)return;var _0x58323d=_0x284a01[_0x6b27('0x40')]({'plain':!![]});return _0x58323d;})[_0x6b27('0x16')](function(_0x3d572b){var _0x49cd6e=new Redis(config[_0x6b27('0x7')]);_0x49cd6e[_0x6b27('0x41')](_0x6b27('0x42'),JSON[_0x6b27('0x18')](_[_0x6b27('0x2e')](_0x3d572b,['id',_0x6b27('0x1c'),'production'])));return _0x3d572b;})[_0x6b27('0x16')](respondWithResult(_0x4a59bf,null))['catch'](handleError(_0x4a59bf,null));};exports[_0x6b27('0x15')]=function(_0x13377c,_0x5f216a){return db[_0x6b27('0x33')]['find']({'where':{'id':_0x13377c['params']['id']}})['then'](handleEntityNotFound(_0x5f216a,null))[_0x6b27('0x16')](removeEntity(_0x5f216a,null))[_0x6b27('0x38')](handleError(_0x5f216a,null));};