Built motion from commit 00bf23f6.|2.6.16
[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 _0x9e42=['query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','type','options','includeAll','rows','catch','show','params','merge','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','lodash','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','localhost','redis','register','status','offset','undefined','count','limit','set','json','update','then','destroy','get','SquareProjects','UserProfileResource','publish','stringify','end','error','name','send','index','map','SquareProject','rawAttributes','fieldName','key','model'];(function(_0x14f30b,_0x4ac7ca){var _0x248b2e=function(_0x800f64){while(--_0x800f64){_0x14f30b['push'](_0x14f30b['shift']());}};_0x248b2e(++_0x4ac7ca);}(_0x9e42,0x1dc));var _0x29e4=function(_0x5235a6,_0x680b76){_0x5235a6=_0x5235a6-0x0;var _0x1cf37e=_0x9e42[_0x5235a6];return _0x1cf37e;};'use strict';var _=require(_0x29e4('0x0'));var Redis=require(_0x29e4('0x1'));var qs=require(_0x29e4('0x2'));var logger=require(_0x29e4('0x3'))(_0x29e4('0x4'));var config=require(_0x29e4('0x5'));var db=require(_0x29e4('0x6'))['db'];config['redis']=_['defaults'](config['redis'],{'host':_0x29e4('0x7'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x29e4('0x8')]));require('./squareProject.socket')[_0x29e4('0x9')](socket);function respondWithResult(_0x38f655,_0x93aaae){_0x93aaae=_0x93aaae||0xc8;return function(_0x332234){if(_0x332234){return _0x38f655[_0x29e4('0xa')](_0x93aaae)['json'](_0x332234);}};}function respondWithFilteredResult(_0x4761d4,_0x473797){return function(_0x50c833){if(_0x50c833){var _0x524714=typeof _0x473797[_0x29e4('0xb')]===_0x29e4('0xc')&&typeof _0x473797['limit']===_0x29e4('0xc');var _0x3409b3=_0x50c833['count'];var _0x2309e6=_0x524714?0x0:_0x473797['offset'];var _0x2d9c52=_0x524714?_0x50c833[_0x29e4('0xd')]:_0x473797['offset']+_0x473797[_0x29e4('0xe')];var _0x12d715;if(_0x2d9c52>=_0x3409b3){_0x2d9c52=_0x3409b3;_0x12d715=0xc8;}else{_0x12d715=0xce;}_0x4761d4[_0x29e4('0xa')](_0x12d715);return _0x4761d4[_0x29e4('0xf')]('Content-Range',_0x2309e6+'-'+_0x2d9c52+'/'+_0x3409b3)[_0x29e4('0x10')](_0x50c833);}return null;};}function saveUpdates(_0x442bec){return function(_0x395162){if(_0x395162){return _0x395162[_0x29e4('0x11')](_0x442bec)[_0x29e4('0x12')](function(_0x73e6f5){return _0x73e6f5;});}return null;};}function removeEntity(_0x36125c){return function(_0x1d3fad){if(_0x1d3fad){return _0x1d3fad[_0x29e4('0x13')]()['then'](function(){var _0x44cf88=_0x1d3fad[_0x29e4('0x14')]({'plain':!![]});var _0x4ccaa4=_0x29e4('0x15');return db[_0x29e4('0x16')][_0x29e4('0x13')]({'where':{'type':_0x4ccaa4,'resourceId':_0x44cf88['id']}})[_0x29e4('0x12')](function(){return _0x1d3fad;});})[_0x29e4('0x12')](function(){var _0x4a26fa=new Redis(config[_0x29e4('0x8')]);_0x4a26fa[_0x29e4('0x17')]('agi',JSON[_0x29e4('0x18')]({'id':_0x1d3fad['id'],'deleted':!![]}));})['then'](function(){_0x36125c[_0x29e4('0xa')](0xcc)[_0x29e4('0x19')]();});}};}function handleEntityNotFound(_0x5d56c7){return function(_0x500230){if(!_0x500230){_0x5d56c7['sendStatus'](0x194);}return _0x500230;};}function handleError(_0xf2a29f,_0x412bd8){_0x412bd8=_0x412bd8||0x1f4;return function(_0x1cf111){logger[_0x29e4('0x1a')](_0x1cf111['stack']);if(_0x1cf111[_0x29e4('0x1b')]){delete _0x1cf111[_0x29e4('0x1b')];}_0xf2a29f[_0x29e4('0xa')](_0x412bd8)[_0x29e4('0x1c')](_0x1cf111);};}exports[_0x29e4('0x1d')]=function(_0x107830,_0x4f9c69){var _0x13a365={},_0x4c6e57={},_0x48d1d3={'count':0x0,'rows':[]};var _0x27b70d=_[_0x29e4('0x1e')](db[_0x29e4('0x1f')][_0x29e4('0x20')],function(_0x12700e){return{'name':_0x12700e[_0x29e4('0x21')],'type':_0x12700e['type'][_0x29e4('0x22')]};});_0x4c6e57[_0x29e4('0x23')]=_[_0x29e4('0x1e')](_0x27b70d,_0x29e4('0x1b'));_0x4c6e57[_0x29e4('0x24')]=_[_0x29e4('0x25')](_0x107830[_0x29e4('0x24')]);_0x4c6e57[_0x29e4('0x26')]=_[_0x29e4('0x27')](_0x4c6e57['model'],_0x4c6e57['query']);_0x13a365[_0x29e4('0x28')]=_['intersection'](_0x4c6e57[_0x29e4('0x23')],qs[_0x29e4('0x29')](_0x107830[_0x29e4('0x24')]['fields']));_0x13a365[_0x29e4('0x28')]=_0x13a365[_0x29e4('0x28')][_0x29e4('0x2a')]?_0x13a365[_0x29e4('0x28')]:_0x4c6e57['model'];if(!_0x107830['query'][_0x29e4('0x2b')](_0x29e4('0x2c'))){_0x13a365[_0x29e4('0xe')]=qs[_0x29e4('0xe')](_0x107830[_0x29e4('0x24')]['limit']);_0x13a365[_0x29e4('0xb')]=qs[_0x29e4('0xb')](_0x107830[_0x29e4('0x24')][_0x29e4('0xb')]);}_0x13a365[_0x29e4('0x2d')]=qs['sort'](_0x107830['query'][_0x29e4('0x2e')]);_0x13a365[_0x29e4('0x2f')]=qs[_0x29e4('0x26')](_[_0x29e4('0x30')](_0x107830[_0x29e4('0x24')],_0x4c6e57[_0x29e4('0x26')]),_0x27b70d);if(_0x107830[_0x29e4('0x24')][_0x29e4('0x31')]){_0x13a365[_0x29e4('0x2f')]=_['merge'](_0x13a365[_0x29e4('0x2f')],{'$or':_[_0x29e4('0x1e')](_0x27b70d,function(_0x527aa5){if(_0x527aa5[_0x29e4('0x32')]!=='VIRTUAL'){var _0x4057f6={};_0x4057f6[_0x527aa5[_0x29e4('0x1b')]]={'$like':'%'+_0x107830['query']['filter']+'%'};return _0x4057f6;}})});}_0x13a365=_['merge']({},_0x13a365,_0x107830[_0x29e4('0x33')]);var _0x2384c6={'where':_0x13a365[_0x29e4('0x2f')]};return db['SquareProject']['count'](_0x2384c6)[_0x29e4('0x12')](function(_0x418d44){_0x48d1d3[_0x29e4('0xd')]=_0x418d44;if(_0x107830[_0x29e4('0x24')][_0x29e4('0x34')]){_0x13a365['include']=[{'all':!![]}];}return db[_0x29e4('0x1f')]['findAll'](_0x13a365);})[_0x29e4('0x12')](function(_0x429f33){_0x48d1d3[_0x29e4('0x35')]=_0x429f33;return _0x48d1d3;})['then'](respondWithFilteredResult(_0x4f9c69,_0x13a365))[_0x29e4('0x36')](handleError(_0x4f9c69,null));};exports[_0x29e4('0x37')]=function(_0x3aaa9c,_0x36e714){var _0x170924={'raw':![],'where':{'id':_0x3aaa9c[_0x29e4('0x38')]['id']}},_0x274ad6={};_0x274ad6['model']=_[_0x29e4('0x25')](db[_0x29e4('0x1f')][_0x29e4('0x20')]);_0x274ad6[_0x29e4('0x24')]=_[_0x29e4('0x25')](_0x3aaa9c[_0x29e4('0x24')]);_0x274ad6[_0x29e4('0x26')]=_[_0x29e4('0x27')](_0x274ad6[_0x29e4('0x23')],_0x274ad6['query']);_0x170924['attributes']=_['intersection'](_0x274ad6[_0x29e4('0x23')],qs[_0x29e4('0x29')](_0x3aaa9c[_0x29e4('0x24')]['fields']));_0x170924[_0x29e4('0x28')]=_0x170924['attributes'][_0x29e4('0x2a')]?_0x170924[_0x29e4('0x28')]:_0x274ad6['model'];if(_0x3aaa9c[_0x29e4('0x24')][_0x29e4('0x34')]){_0x170924['include']=[{'all':!![]}];}_0x170924=_[_0x29e4('0x39')]({},_0x170924,_0x3aaa9c[_0x29e4('0x33')]);return db[_0x29e4('0x1f')][_0x29e4('0x3a')](_0x170924)[_0x29e4('0x12')](handleEntityNotFound(_0x36e714,null))[_0x29e4('0x12')](respondWithResult(_0x36e714,null))['catch'](handleError(_0x36e714,null));};exports[_0x29e4('0x3b')]=function(_0x49ec5e,_0x55e1f5){return db[_0x29e4('0x1f')]['create'](_0x49ec5e[_0x29e4('0x3c')],{})['then'](function(_0x31d40d){var _0x5c2ae2=_0x49ec5e[_0x29e4('0x3d')][_0x29e4('0x14')]({'plain':!![]});if(!_0x5c2ae2)throw new Error(_0x29e4('0x3e'));if(_0x5c2ae2[_0x29e4('0x3f')]===_0x29e4('0x3d')){var _0xee82d5=_0x31d40d[_0x29e4('0x14')]({'plain':!![]});var _0x4e5292=_0x29e4('0x15');return db['UserProfileSection'][_0x29e4('0x3a')]({'where':{'name':_0x4e5292,'userProfileId':_0x5c2ae2['userProfileId']},'raw':!![]})['then'](function(_0x3944f3){if(_0x3944f3&&_0x3944f3['autoAssociation']===0x0){return db[_0x29e4('0x16')][_0x29e4('0x3b')]({'name':_0xee82d5[_0x29e4('0x1b')],'resourceId':_0xee82d5['id'],'type':_0x3944f3[_0x29e4('0x1b')],'sectionId':_0x3944f3['id']},{})[_0x29e4('0x12')](function(){return _0x31d40d;});}else{return _0x31d40d;}})[_0x29e4('0x36')](function(_0x595158){logger[_0x29e4('0x1a')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x595158);throw _0x595158;});}return _0x31d40d;})[_0x29e4('0x12')](respondWithResult(_0x55e1f5,0xc9))['catch'](handleError(_0x55e1f5,null));};exports['update']=function(_0x2897d5,_0x1be9f7){if(_0x2897d5[_0x29e4('0x3c')]['id']){delete _0x2897d5[_0x29e4('0x3c')]['id'];}return db[_0x29e4('0x1f')][_0x29e4('0x3a')]({'where':{'id':_0x2897d5['params']['id']}})[_0x29e4('0x12')](handleEntityNotFound(_0x1be9f7,null))[_0x29e4('0x12')](saveUpdates(_0x2897d5[_0x29e4('0x3c')],null))[_0x29e4('0x12')](function(_0x498393){if(!_0x498393)return;var _0x2b107b=_0x498393[_0x29e4('0x14')]({'plain':!![]});return _0x2b107b;})['then'](function(_0x5c9694){var _0x5f43e2=new Redis(config[_0x29e4('0x8')]);_0x5f43e2['publish']('agi',JSON[_0x29e4('0x18')](_[_0x29e4('0x30')](_0x5c9694,['id',_0x29e4('0x1b'),'production'])));return _0x5c9694;})['then'](respondWithResult(_0x1be9f7,null))[_0x29e4('0x36')](handleError(_0x1be9f7,null));};exports[_0x29e4('0x13')]=function(_0x1831bb,_0x43be85){return db['SquareProject']['find']({'where':{'id':_0x1831bb[_0x29e4('0x38')]['id']}})[_0x29e4('0x12')](handleEntityNotFound(_0x43be85,null))[_0x29e4('0x12')](removeEntity(_0x43be85,null))[_0x29e4('0x36')](handleError(_0x43be85,null));};