d39b8e04d784ec5eb68f219b97a9f4eab5d0d050
[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 _0x3aea=['type','key','model','map','query','keys','filters','intersection','attributes','fields','hasOwnProperty','order','where','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','params','rawAttributes','length','find','catch','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','agi','production','ioredis','../../config/logger','api','../../config/environment','../../mysqldb','redis','localhost','socket.io-emitter','./squareProject.socket','register','status','offset','undefined','limit','count','Content-Range','json','update','then','get','SquareProjects','destroy','publish','stringify','error','stack','name','send','index','SquareProject','fieldName'];(function(_0x29ddaf,_0x57b3dc){var _0x48dc01=function(_0x3624c0){while(--_0x3624c0){_0x29ddaf['push'](_0x29ddaf['shift']());}};_0x48dc01(++_0x57b3dc);}(_0x3aea,0xf1));var _0xa3ae=function(_0x1fb497,_0x111cae){_0x1fb497=_0x1fb497-0x0;var _0x178a27=_0x3aea[_0x1fb497];return _0x178a27;};'use strict';var _=require('lodash');var Redis=require(_0xa3ae('0x0'));var qs=require('../../components/parsers/qs');var logger=require(_0xa3ae('0x1'))(_0xa3ae('0x2'));var config=require(_0xa3ae('0x3'));var db=require(_0xa3ae('0x4'))['db'];config[_0xa3ae('0x5')]=_['defaults'](config[_0xa3ae('0x5')],{'host':_0xa3ae('0x6'),'port':0x18eb});var socket=require(_0xa3ae('0x7'))(new Redis(config['redis']));require(_0xa3ae('0x8'))[_0xa3ae('0x9')](socket);function respondWithResult(_0x4e6e0e,_0x29828a){_0x29828a=_0x29828a||0xc8;return function(_0x18b7b8){if(_0x18b7b8){return _0x4e6e0e[_0xa3ae('0xa')](_0x29828a)['json'](_0x18b7b8);}};}function respondWithFilteredResult(_0x553482,_0x5a26b0){return function(_0x363cf7){if(_0x363cf7){var _0x56b329=typeof _0x5a26b0[_0xa3ae('0xb')]===_0xa3ae('0xc')&&typeof _0x5a26b0[_0xa3ae('0xd')]===_0xa3ae('0xc');var _0x177794=_0x363cf7[_0xa3ae('0xe')];var _0x85088f=_0x56b329?0x0:_0x5a26b0[_0xa3ae('0xb')];var _0x1b9d1b=_0x56b329?_0x363cf7['count']:_0x5a26b0[_0xa3ae('0xb')]+_0x5a26b0[_0xa3ae('0xd')];var _0x4bd1bc;if(_0x1b9d1b>=_0x177794){_0x1b9d1b=_0x177794;_0x4bd1bc=0xc8;}else{_0x4bd1bc=0xce;}_0x553482[_0xa3ae('0xa')](_0x4bd1bc);return _0x553482['set'](_0xa3ae('0xf'),_0x85088f+'-'+_0x1b9d1b+'/'+_0x177794)[_0xa3ae('0x10')](_0x363cf7);}return null;};}function saveUpdates(_0x36a835){return function(_0x19f012){if(_0x19f012){return _0x19f012[_0xa3ae('0x11')](_0x36a835)['then'](function(_0x3046d4){return _0x3046d4;});}return null;};}function removeEntity(_0x3461c2){return function(_0x4731fb){if(_0x4731fb){return _0x4731fb['destroy']()[_0xa3ae('0x12')](function(){var _0x43dcf1=_0x4731fb[_0xa3ae('0x13')]({'plain':!![]});var _0x176a3a=_0xa3ae('0x14');return db['UserProfileResource'][_0xa3ae('0x15')]({'where':{'type':_0x176a3a,'resourceId':_0x43dcf1['id']}})['then'](function(){return _0x4731fb;});})[_0xa3ae('0x12')](function(){var _0xb7e9f2=new Redis(config[_0xa3ae('0x5')]);_0xb7e9f2[_0xa3ae('0x16')]('agi',JSON[_0xa3ae('0x17')]({'id':_0x4731fb['id'],'deleted':!![]}));})[_0xa3ae('0x12')](function(){_0x3461c2[_0xa3ae('0xa')](0xcc)['end']();});}};}function handleEntityNotFound(_0x7e32e6){return function(_0x2a3d46){if(!_0x2a3d46){_0x7e32e6['sendStatus'](0x194);}return _0x2a3d46;};}function handleError(_0x4b07d6,_0x297bb7){_0x297bb7=_0x297bb7||0x1f4;return function(_0x282cd6){logger[_0xa3ae('0x18')](_0x282cd6[_0xa3ae('0x19')]);if(_0x282cd6['name']){delete _0x282cd6[_0xa3ae('0x1a')];}_0x4b07d6['status'](_0x297bb7)[_0xa3ae('0x1b')](_0x282cd6);};}exports[_0xa3ae('0x1c')]=function(_0x546a4e,_0x37f688){var _0x2e208e={},_0x5d094b={},_0x628c58={'count':0x0,'rows':[]};var _0x283b38=_['map'](db[_0xa3ae('0x1d')]['rawAttributes'],function(_0x40c8a1){return{'name':_0x40c8a1[_0xa3ae('0x1e')],'type':_0x40c8a1[_0xa3ae('0x1f')][_0xa3ae('0x20')]};});_0x5d094b[_0xa3ae('0x21')]=_[_0xa3ae('0x22')](_0x283b38,'name');_0x5d094b[_0xa3ae('0x23')]=_[_0xa3ae('0x24')](_0x546a4e[_0xa3ae('0x23')]);_0x5d094b[_0xa3ae('0x25')]=_[_0xa3ae('0x26')](_0x5d094b[_0xa3ae('0x21')],_0x5d094b[_0xa3ae('0x23')]);_0x2e208e[_0xa3ae('0x27')]=_['intersection'](_0x5d094b[_0xa3ae('0x21')],qs[_0xa3ae('0x28')](_0x546a4e[_0xa3ae('0x23')][_0xa3ae('0x28')]));_0x2e208e[_0xa3ae('0x27')]=_0x2e208e[_0xa3ae('0x27')]['length']?_0x2e208e[_0xa3ae('0x27')]:_0x5d094b[_0xa3ae('0x21')];if(!_0x546a4e[_0xa3ae('0x23')][_0xa3ae('0x29')]('nolimit')){_0x2e208e[_0xa3ae('0xd')]=qs[_0xa3ae('0xd')](_0x546a4e[_0xa3ae('0x23')]['limit']);_0x2e208e[_0xa3ae('0xb')]=qs[_0xa3ae('0xb')](_0x546a4e[_0xa3ae('0x23')][_0xa3ae('0xb')]);}_0x2e208e[_0xa3ae('0x2a')]=qs['sort'](_0x546a4e[_0xa3ae('0x23')]['sort']);_0x2e208e[_0xa3ae('0x2b')]=qs[_0xa3ae('0x25')](_['pick'](_0x546a4e[_0xa3ae('0x23')],_0x5d094b['filters']),_0x283b38);if(_0x546a4e[_0xa3ae('0x23')][_0xa3ae('0x2c')]){_0x2e208e[_0xa3ae('0x2b')]=_[_0xa3ae('0x2d')](_0x2e208e[_0xa3ae('0x2b')],{'$or':_[_0xa3ae('0x22')](_0x283b38,function(_0x890760){if(_0x890760[_0xa3ae('0x1f')]!==_0xa3ae('0x2e')){var _0x1610e2={};_0x1610e2[_0x890760[_0xa3ae('0x1a')]]={'$like':'%'+_0x546a4e[_0xa3ae('0x23')][_0xa3ae('0x2c')]+'%'};return _0x1610e2;}})});}_0x2e208e=_[_0xa3ae('0x2d')]({},_0x2e208e,_0x546a4e[_0xa3ae('0x2f')]);var _0x3775ba={'where':_0x2e208e[_0xa3ae('0x2b')]};return db[_0xa3ae('0x1d')][_0xa3ae('0xe')](_0x3775ba)['then'](function(_0x3c0105){_0x628c58[_0xa3ae('0xe')]=_0x3c0105;if(_0x546a4e[_0xa3ae('0x23')][_0xa3ae('0x30')]){_0x2e208e[_0xa3ae('0x31')]=[{'all':!![]}];}return db['SquareProject'][_0xa3ae('0x32')](_0x2e208e);})['then'](function(_0x25ecb1){_0x628c58[_0xa3ae('0x33')]=_0x25ecb1;return _0x628c58;})[_0xa3ae('0x12')](respondWithFilteredResult(_0x37f688,_0x2e208e))['catch'](handleError(_0x37f688,null));};exports[_0xa3ae('0x34')]=function(_0x322069,_0x24d39d){var _0x367c39={'raw':![],'where':{'id':_0x322069[_0xa3ae('0x35')]['id']}},_0x130dd1={};_0x130dd1[_0xa3ae('0x21')]=_[_0xa3ae('0x24')](db['SquareProject'][_0xa3ae('0x36')]);_0x130dd1[_0xa3ae('0x23')]=_['keys'](_0x322069['query']);_0x130dd1['filters']=_[_0xa3ae('0x26')](_0x130dd1[_0xa3ae('0x21')],_0x130dd1[_0xa3ae('0x23')]);_0x367c39[_0xa3ae('0x27')]=_[_0xa3ae('0x26')](_0x130dd1[_0xa3ae('0x21')],qs['fields'](_0x322069['query']['fields']));_0x367c39[_0xa3ae('0x27')]=_0x367c39[_0xa3ae('0x27')][_0xa3ae('0x37')]?_0x367c39[_0xa3ae('0x27')]:_0x130dd1[_0xa3ae('0x21')];if(_0x322069['query']['includeAll']){_0x367c39[_0xa3ae('0x31')]=[{'all':!![]}];}_0x367c39=_[_0xa3ae('0x2d')]({},_0x367c39,_0x322069['options']);return db[_0xa3ae('0x1d')][_0xa3ae('0x38')](_0x367c39)[_0xa3ae('0x12')](handleEntityNotFound(_0x24d39d,null))[_0xa3ae('0x12')](respondWithResult(_0x24d39d,null))[_0xa3ae('0x39')](handleError(_0x24d39d,null));};exports['create']=function(_0x402cd5,_0x3b0d0f){return db[_0xa3ae('0x1d')][_0xa3ae('0x3a')](_0x402cd5['body'],{})[_0xa3ae('0x12')](function(_0x483c18){var _0xfd8d6d=_0x402cd5[_0xa3ae('0x3b')][_0xa3ae('0x13')]({'plain':!![]});if(!_0xfd8d6d)throw new Error(_0xa3ae('0x3c'));if(_0xfd8d6d['role']==='user'){var _0x55a083=_0x483c18['get']({'plain':!![]});var _0x1aec05=_0xa3ae('0x14');return db[_0xa3ae('0x3d')][_0xa3ae('0x38')]({'where':{'name':_0x1aec05,'userProfileId':_0xfd8d6d[_0xa3ae('0x3e')]},'raw':!![]})[_0xa3ae('0x12')](function(_0x5d8282){if(_0x5d8282&&_0x5d8282['autoAssociation']===0x0){return db[_0xa3ae('0x3f')]['create']({'name':_0x55a083[_0xa3ae('0x1a')],'resourceId':_0x55a083['id'],'type':_0x5d8282['name'],'sectionId':_0x5d8282['id']},{})[_0xa3ae('0x12')](function(){return _0x483c18;});}else{return _0x483c18;}})[_0xa3ae('0x39')](function(_0x510042){logger[_0xa3ae('0x18')](_0xa3ae('0x40'),_0x510042);throw _0x510042;});}return _0x483c18;})[_0xa3ae('0x12')](respondWithResult(_0x3b0d0f,0xc9))[_0xa3ae('0x39')](handleError(_0x3b0d0f,null));};exports[_0xa3ae('0x11')]=function(_0x4afd1e,_0x17df36){if(_0x4afd1e[_0xa3ae('0x41')]['id']){delete _0x4afd1e['body']['id'];}return db[_0xa3ae('0x1d')][_0xa3ae('0x38')]({'where':{'id':_0x4afd1e[_0xa3ae('0x35')]['id']}})['then'](handleEntityNotFound(_0x17df36,null))[_0xa3ae('0x12')](saveUpdates(_0x4afd1e[_0xa3ae('0x41')],null))[_0xa3ae('0x12')](function(_0x3b7205){if(!_0x3b7205)return;var _0x208424=_0x3b7205['get']({'plain':!![]});return _0x208424;})['then'](function(_0x3d944c){var _0x4b1ccf=new Redis(config[_0xa3ae('0x5')]);_0x4b1ccf[_0xa3ae('0x16')](_0xa3ae('0x42'),JSON[_0xa3ae('0x17')](_['pick'](_0x3d944c,['id',_0xa3ae('0x1a'),_0xa3ae('0x43')])));return _0x3d944c;})[_0xa3ae('0x12')](respondWithResult(_0x17df36,null))['catch'](handleError(_0x17df36,null));};exports[_0xa3ae('0x15')]=function(_0x2bbc32,_0xb9d601){return db[_0xa3ae('0x1d')][_0xa3ae('0x38')]({'where':{'id':_0x2bbc32[_0xa3ae('0x35')]['id']}})[_0xa3ae('0x12')](handleEntityNotFound(_0xb9d601,null))[_0xa3ae('0x12')](removeEntity(_0xb9d601,null))[_0xa3ae('0x39')](handleError(_0xb9d601,null));};