Built motion from commit 97153652.|2.6.26
[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 _0x4ae7=['keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','find','create','body','user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','production','lodash','ioredis','../../config/logger','api','../../config/environment','../../mysqldb','redis','localhost','./squareProject.socket','register','status','json','offset','limit','undefined','count','set','update','destroy','then','get','publish','agi','stringify','end','error','stack','name','send','index','map','SquareProject','fieldName','type','key','model','query'];(function(_0x55172c,_0x521972){var _0x59b506=function(_0x3138da){while(--_0x3138da){_0x55172c['push'](_0x55172c['shift']());}};_0x59b506(++_0x521972);}(_0x4ae7,0x185));var _0x74ae=function(_0x1e58ce,_0x5120f9){_0x1e58ce=_0x1e58ce-0x0;var _0x1e3bf4=_0x4ae7[_0x1e58ce];return _0x1e3bf4;};'use strict';var _=require(_0x74ae('0x0'));var Redis=require(_0x74ae('0x1'));var qs=require('../../components/parsers/qs');var logger=require(_0x74ae('0x2'))(_0x74ae('0x3'));var config=require(_0x74ae('0x4'));var db=require(_0x74ae('0x5'))['db'];config[_0x74ae('0x6')]=_['defaults'](config[_0x74ae('0x6')],{'host':_0x74ae('0x7'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x74ae('0x6')]));require(_0x74ae('0x8'))[_0x74ae('0x9')](socket);function respondWithResult(_0xc10be3,_0x28a2e6){_0x28a2e6=_0x28a2e6||0xc8;return function(_0x238dc3){if(_0x238dc3){return _0xc10be3[_0x74ae('0xa')](_0x28a2e6)[_0x74ae('0xb')](_0x238dc3);}};}function respondWithFilteredResult(_0x12bf56,_0x593fc1){return function(_0x47be8d){if(_0x47be8d){var _0x4fd783=typeof _0x593fc1[_0x74ae('0xc')]==='undefined'&&typeof _0x593fc1[_0x74ae('0xd')]===_0x74ae('0xe');var _0x521b0=_0x47be8d[_0x74ae('0xf')];var _0x42faaf=_0x4fd783?0x0:_0x593fc1[_0x74ae('0xc')];var _0x56f6fc=_0x4fd783?_0x47be8d[_0x74ae('0xf')]:_0x593fc1[_0x74ae('0xc')]+_0x593fc1[_0x74ae('0xd')];var _0x3e4695;if(_0x56f6fc>=_0x521b0){_0x56f6fc=_0x521b0;_0x3e4695=0xc8;}else{_0x3e4695=0xce;}_0x12bf56[_0x74ae('0xa')](_0x3e4695);return _0x12bf56[_0x74ae('0x10')]('Content-Range',_0x42faaf+'-'+_0x56f6fc+'/'+_0x521b0)[_0x74ae('0xb')](_0x47be8d);}return null;};}function saveUpdates(_0x45b3c4){return function(_0x45a900){if(_0x45a900){return _0x45a900[_0x74ae('0x11')](_0x45b3c4)['then'](function(_0x5ad5bc){return _0x5ad5bc;});}return null;};}function removeEntity(_0x22ebc8){return function(_0x9541b1){if(_0x9541b1){return _0x9541b1[_0x74ae('0x12')]()[_0x74ae('0x13')](function(){var _0x5d8022=_0x9541b1[_0x74ae('0x14')]({'plain':!![]});var _0x407af1='SquareProjects';return db['UserProfileResource'][_0x74ae('0x12')]({'where':{'type':_0x407af1,'resourceId':_0x5d8022['id']}})[_0x74ae('0x13')](function(){return _0x9541b1;});})['then'](function(){var _0x259670=new Redis(config[_0x74ae('0x6')]);_0x259670[_0x74ae('0x15')](_0x74ae('0x16'),JSON[_0x74ae('0x17')]({'id':_0x9541b1['id'],'deleted':!![]}));})[_0x74ae('0x13')](function(){_0x22ebc8[_0x74ae('0xa')](0xcc)[_0x74ae('0x18')]();});}};}function handleEntityNotFound(_0x383885){return function(_0x4c8279){if(!_0x4c8279){_0x383885['sendStatus'](0x194);}return _0x4c8279;};}function handleError(_0x30af82,_0xbe64d2){_0xbe64d2=_0xbe64d2||0x1f4;return function(_0x2b618b){logger[_0x74ae('0x19')](_0x2b618b[_0x74ae('0x1a')]);if(_0x2b618b['name']){delete _0x2b618b[_0x74ae('0x1b')];}_0x30af82[_0x74ae('0xa')](_0xbe64d2)[_0x74ae('0x1c')](_0x2b618b);};}exports[_0x74ae('0x1d')]=function(_0x32327c,_0x4a88f9){var _0x22763c={},_0x5ce285={},_0x4f7349={'count':0x0,'rows':[]};var _0x373a22=_[_0x74ae('0x1e')](db[_0x74ae('0x1f')]['rawAttributes'],function(_0x302f15){return{'name':_0x302f15[_0x74ae('0x20')],'type':_0x302f15[_0x74ae('0x21')][_0x74ae('0x22')]};});_0x5ce285[_0x74ae('0x23')]=_[_0x74ae('0x1e')](_0x373a22,'name');_0x5ce285[_0x74ae('0x24')]=_[_0x74ae('0x25')](_0x32327c[_0x74ae('0x24')]);_0x5ce285[_0x74ae('0x26')]=_['intersection'](_0x5ce285['model'],_0x5ce285[_0x74ae('0x24')]);_0x22763c[_0x74ae('0x27')]=_[_0x74ae('0x28')](_0x5ce285[_0x74ae('0x23')],qs[_0x74ae('0x29')](_0x32327c['query'][_0x74ae('0x29')]));_0x22763c[_0x74ae('0x27')]=_0x22763c[_0x74ae('0x27')][_0x74ae('0x2a')]?_0x22763c[_0x74ae('0x27')]:_0x5ce285[_0x74ae('0x23')];if(!_0x32327c['query'][_0x74ae('0x2b')](_0x74ae('0x2c'))){_0x22763c[_0x74ae('0xd')]=qs[_0x74ae('0xd')](_0x32327c['query'][_0x74ae('0xd')]);_0x22763c[_0x74ae('0xc')]=qs['offset'](_0x32327c[_0x74ae('0x24')][_0x74ae('0xc')]);}_0x22763c[_0x74ae('0x2d')]=qs[_0x74ae('0x2e')](_0x32327c[_0x74ae('0x24')][_0x74ae('0x2e')]);_0x22763c[_0x74ae('0x2f')]=qs[_0x74ae('0x26')](_[_0x74ae('0x30')](_0x32327c[_0x74ae('0x24')],_0x5ce285[_0x74ae('0x26')]),_0x373a22);if(_0x32327c[_0x74ae('0x24')][_0x74ae('0x31')]){_0x22763c[_0x74ae('0x2f')]=_[_0x74ae('0x32')](_0x22763c[_0x74ae('0x2f')],{'$or':_[_0x74ae('0x1e')](_0x373a22,function(_0x475806){if(_0x475806[_0x74ae('0x21')]!==_0x74ae('0x33')){var _0x138de7={};_0x138de7[_0x475806[_0x74ae('0x1b')]]={'$like':'%'+_0x32327c[_0x74ae('0x24')][_0x74ae('0x31')]+'%'};return _0x138de7;}})});}_0x22763c=_['merge']({},_0x22763c,_0x32327c[_0x74ae('0x34')]);var _0x5c8e04={'where':_0x22763c[_0x74ae('0x2f')]};return db['SquareProject']['count'](_0x5c8e04)[_0x74ae('0x13')](function(_0x9b2c10){_0x4f7349[_0x74ae('0xf')]=_0x9b2c10;if(_0x32327c['query'][_0x74ae('0x35')]){_0x22763c[_0x74ae('0x36')]=[{'all':!![]}];}return db[_0x74ae('0x1f')][_0x74ae('0x37')](_0x22763c);})[_0x74ae('0x13')](function(_0x1c1a2e){_0x4f7349[_0x74ae('0x38')]=_0x1c1a2e;return _0x4f7349;})[_0x74ae('0x13')](respondWithFilteredResult(_0x4a88f9,_0x22763c))[_0x74ae('0x39')](handleError(_0x4a88f9,null));};exports[_0x74ae('0x3a')]=function(_0x35e667,_0x437bc7){var _0xe992c9={'raw':![],'where':{'id':_0x35e667['params']['id']}},_0x248081={};_0x248081['model']=_[_0x74ae('0x25')](db['SquareProject']['rawAttributes']);_0x248081[_0x74ae('0x24')]=_[_0x74ae('0x25')](_0x35e667[_0x74ae('0x24')]);_0x248081['filters']=_[_0x74ae('0x28')](_0x248081[_0x74ae('0x23')],_0x248081['query']);_0xe992c9[_0x74ae('0x27')]=_[_0x74ae('0x28')](_0x248081[_0x74ae('0x23')],qs[_0x74ae('0x29')](_0x35e667['query']['fields']));_0xe992c9[_0x74ae('0x27')]=_0xe992c9['attributes'][_0x74ae('0x2a')]?_0xe992c9[_0x74ae('0x27')]:_0x248081['model'];if(_0x35e667[_0x74ae('0x24')][_0x74ae('0x35')]){_0xe992c9[_0x74ae('0x36')]=[{'all':!![]}];}_0xe992c9=_['merge']({},_0xe992c9,_0x35e667[_0x74ae('0x34')]);return db[_0x74ae('0x1f')][_0x74ae('0x3b')](_0xe992c9)[_0x74ae('0x13')](handleEntityNotFound(_0x437bc7,null))[_0x74ae('0x13')](respondWithResult(_0x437bc7,null))[_0x74ae('0x39')](handleError(_0x437bc7,null));};exports[_0x74ae('0x3c')]=function(_0x44b89a,_0x4939d6){return db[_0x74ae('0x1f')][_0x74ae('0x3c')](_0x44b89a[_0x74ae('0x3d')],{})[_0x74ae('0x13')](function(_0x383819){var _0x462d6e=_0x44b89a[_0x74ae('0x3e')][_0x74ae('0x14')]({'plain':!![]});if(!_0x462d6e)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x462d6e[_0x74ae('0x3f')]===_0x74ae('0x3e')){var _0x72b1ca=_0x383819['get']({'plain':!![]});var _0x1b6aea='SquareProjects';return db[_0x74ae('0x40')][_0x74ae('0x3b')]({'where':{'name':_0x1b6aea,'userProfileId':_0x462d6e[_0x74ae('0x41')]},'raw':!![]})[_0x74ae('0x13')](function(_0x35b882){if(_0x35b882&&_0x35b882[_0x74ae('0x42')]===0x0){return db[_0x74ae('0x43')]['create']({'name':_0x72b1ca[_0x74ae('0x1b')],'resourceId':_0x72b1ca['id'],'type':_0x35b882[_0x74ae('0x1b')],'sectionId':_0x35b882['id']},{})[_0x74ae('0x13')](function(){return _0x383819;});}else{return _0x383819;}})['catch'](function(_0x3b5956){logger[_0x74ae('0x19')](_0x74ae('0x44'),_0x3b5956);throw _0x3b5956;});}return _0x383819;})['then'](respondWithResult(_0x4939d6,0xc9))[_0x74ae('0x39')](handleError(_0x4939d6,null));};exports[_0x74ae('0x11')]=function(_0x3e9641,_0x2e3414){if(_0x3e9641[_0x74ae('0x3d')]['id']){delete _0x3e9641[_0x74ae('0x3d')]['id'];}return db[_0x74ae('0x1f')][_0x74ae('0x3b')]({'where':{'id':_0x3e9641[_0x74ae('0x45')]['id']}})[_0x74ae('0x13')](handleEntityNotFound(_0x2e3414,null))['then'](saveUpdates(_0x3e9641[_0x74ae('0x3d')],null))[_0x74ae('0x13')](function(_0x269ef2){if(!_0x269ef2)return;var _0x1e3637=_0x269ef2[_0x74ae('0x14')]({'plain':!![]});return _0x1e3637;})[_0x74ae('0x13')](function(_0x1497d8){var _0x592031=new Redis(config[_0x74ae('0x6')]);_0x592031[_0x74ae('0x15')]('agi',JSON[_0x74ae('0x17')](_[_0x74ae('0x30')](_0x1497d8,['id',_0x74ae('0x1b'),_0x74ae('0x46')])));return _0x1497d8;})[_0x74ae('0x13')](respondWithResult(_0x2e3414,null))['catch'](handleError(_0x2e3414,null));};exports['destroy']=function(_0x4db117,_0x3fa9eb){return db['SquareProject'][_0x74ae('0x3b')]({'where':{'id':_0x4db117[_0x74ae('0x45')]['id']}})[_0x74ae('0x13')](handleEntityNotFound(_0x3fa9eb,null))['then'](removeEntity(_0x3fa9eb,null))[_0x74ae('0x39')](handleError(_0x3fa9eb,null));};