Built motion from commit b5413ace.|2.6.9
[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 _0xcffd=['send','map','SquareProject','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','sort','where','filter','merge','VIRTUAL','options','includeAll','include','rows','show','params','find','catch','create','body','user','role','SquareProjects','pick','production','lodash','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','socket.io-emitter','./squareProject.socket','json','offset','undefined','limit','count','status','set','Content-Range','update','then','get','UserProfileResource','destroy','publish','agi','stringify','end','sendStatus','error','stack','name'];(function(_0x55c291,_0x4591ed){var _0x557dd6=function(_0x5a42c5){while(--_0x5a42c5){_0x55c291['push'](_0x55c291['shift']());}};_0x557dd6(++_0x4591ed);}(_0xcffd,0x68));var _0xdcff=function(_0x4bd928,_0x55701c){_0x4bd928=_0x4bd928-0x0;var _0x4881a8=_0xcffd[_0x4bd928];return _0x4881a8;};'use strict';var _=require(_0xdcff('0x0'));var Redis=require(_0xdcff('0x1'));var qs=require(_0xdcff('0x2'));var logger=require(_0xdcff('0x3'))(_0xdcff('0x4'));var config=require(_0xdcff('0x5'));var db=require(_0xdcff('0x6'))['db'];config[_0xdcff('0x7')]=_[_0xdcff('0x8')](config[_0xdcff('0x7')],{'host':'localhost','port':0x18eb});var socket=require(_0xdcff('0x9'))(new Redis(config[_0xdcff('0x7')]));require(_0xdcff('0xa'))['register'](socket);function respondWithResult(_0x59efec,_0x1a9196){_0x1a9196=_0x1a9196||0xc8;return function(_0x316c6d){if(_0x316c6d){return _0x59efec['status'](_0x1a9196)[_0xdcff('0xb')](_0x316c6d);}};}function respondWithFilteredResult(_0x27b667,_0x1b598b){return function(_0x1a8cdf){if(_0x1a8cdf){var _0x24af1a=typeof _0x1b598b[_0xdcff('0xc')]===_0xdcff('0xd')&&typeof _0x1b598b[_0xdcff('0xe')]==='undefined';var _0x5e9c5c=_0x1a8cdf['count'];var _0x33d524=_0x24af1a?0x0:_0x1b598b[_0xdcff('0xc')];var _0x250b79=_0x24af1a?_0x1a8cdf[_0xdcff('0xf')]:_0x1b598b[_0xdcff('0xc')]+_0x1b598b[_0xdcff('0xe')];var _0x3dce74;if(_0x250b79>=_0x5e9c5c){_0x250b79=_0x5e9c5c;_0x3dce74=0xc8;}else{_0x3dce74=0xce;}_0x27b667[_0xdcff('0x10')](_0x3dce74);return _0x27b667[_0xdcff('0x11')](_0xdcff('0x12'),_0x33d524+'-'+_0x250b79+'/'+_0x5e9c5c)[_0xdcff('0xb')](_0x1a8cdf);}return null;};}function saveUpdates(_0x383f95){return function(_0x476c32){if(_0x476c32){return _0x476c32[_0xdcff('0x13')](_0x383f95)[_0xdcff('0x14')](function(_0x3d6621){return _0x3d6621;});}return null;};}function removeEntity(_0x54d830){return function(_0x3d2b2b){if(_0x3d2b2b){return _0x3d2b2b['destroy']()[_0xdcff('0x14')](function(){var _0x30298b=_0x3d2b2b[_0xdcff('0x15')]({'plain':!![]});var _0x3bbf9f='SquareProjects';return db[_0xdcff('0x16')][_0xdcff('0x17')]({'where':{'type':_0x3bbf9f,'resourceId':_0x30298b['id']}})[_0xdcff('0x14')](function(){return _0x3d2b2b;});})[_0xdcff('0x14')](function(){var _0x2e3931=new Redis(config['redis']);_0x2e3931[_0xdcff('0x18')](_0xdcff('0x19'),JSON[_0xdcff('0x1a')]({'id':_0x3d2b2b['id'],'deleted':!![]}));})['then'](function(){_0x54d830[_0xdcff('0x10')](0xcc)[_0xdcff('0x1b')]();});}};}function handleEntityNotFound(_0x12ab0e){return function(_0x266f27){if(!_0x266f27){_0x12ab0e[_0xdcff('0x1c')](0x194);}return _0x266f27;};}function handleError(_0x2c630a,_0x2ae563){_0x2ae563=_0x2ae563||0x1f4;return function(_0x22a1d2){logger[_0xdcff('0x1d')](_0x22a1d2[_0xdcff('0x1e')]);if(_0x22a1d2[_0xdcff('0x1f')]){delete _0x22a1d2[_0xdcff('0x1f')];}_0x2c630a[_0xdcff('0x10')](_0x2ae563)[_0xdcff('0x20')](_0x22a1d2);};}exports['index']=function(_0x1bfe35,_0x5c8669){var _0x416699={},_0x42848e={},_0x35d777={'count':0x0,'rows':[]};var _0x46c674=_[_0xdcff('0x21')](db[_0xdcff('0x22')][_0xdcff('0x23')],function(_0x507be6){return{'name':_0x507be6[_0xdcff('0x24')],'type':_0x507be6[_0xdcff('0x25')][_0xdcff('0x26')]};});_0x42848e[_0xdcff('0x27')]=_[_0xdcff('0x21')](_0x46c674,'name');_0x42848e[_0xdcff('0x28')]=_[_0xdcff('0x29')](_0x1bfe35['query']);_0x42848e[_0xdcff('0x2a')]=_[_0xdcff('0x2b')](_0x42848e[_0xdcff('0x27')],_0x42848e[_0xdcff('0x28')]);_0x416699[_0xdcff('0x2c')]=_[_0xdcff('0x2b')](_0x42848e[_0xdcff('0x27')],qs[_0xdcff('0x2d')](_0x1bfe35[_0xdcff('0x28')][_0xdcff('0x2d')]));_0x416699['attributes']=_0x416699[_0xdcff('0x2c')][_0xdcff('0x2e')]?_0x416699[_0xdcff('0x2c')]:_0x42848e[_0xdcff('0x27')];if(!_0x1bfe35[_0xdcff('0x28')][_0xdcff('0x2f')]('nolimit')){_0x416699[_0xdcff('0xe')]=qs[_0xdcff('0xe')](_0x1bfe35[_0xdcff('0x28')][_0xdcff('0xe')]);_0x416699['offset']=qs['offset'](_0x1bfe35[_0xdcff('0x28')][_0xdcff('0xc')]);}_0x416699['order']=qs[_0xdcff('0x30')](_0x1bfe35[_0xdcff('0x28')][_0xdcff('0x30')]);_0x416699[_0xdcff('0x31')]=qs[_0xdcff('0x2a')](_['pick'](_0x1bfe35[_0xdcff('0x28')],_0x42848e[_0xdcff('0x2a')]),_0x46c674);if(_0x1bfe35[_0xdcff('0x28')][_0xdcff('0x32')]){_0x416699[_0xdcff('0x31')]=_[_0xdcff('0x33')](_0x416699[_0xdcff('0x31')],{'$or':_['map'](_0x46c674,function(_0x499c89){if(_0x499c89[_0xdcff('0x25')]!==_0xdcff('0x34')){var _0x56a93c={};_0x56a93c[_0x499c89[_0xdcff('0x1f')]]={'$like':'%'+_0x1bfe35[_0xdcff('0x28')][_0xdcff('0x32')]+'%'};return _0x56a93c;}})});}_0x416699=_['merge']({},_0x416699,_0x1bfe35[_0xdcff('0x35')]);var _0x4ca805={'where':_0x416699['where']};return db[_0xdcff('0x22')][_0xdcff('0xf')](_0x4ca805)[_0xdcff('0x14')](function(_0x4565b4){_0x35d777['count']=_0x4565b4;if(_0x1bfe35[_0xdcff('0x28')][_0xdcff('0x36')]){_0x416699[_0xdcff('0x37')]=[{'all':!![]}];}return db[_0xdcff('0x22')]['findAll'](_0x416699);})[_0xdcff('0x14')](function(_0x2ba653){_0x35d777[_0xdcff('0x38')]=_0x2ba653;return _0x35d777;})['then'](respondWithFilteredResult(_0x5c8669,_0x416699))['catch'](handleError(_0x5c8669,null));};exports[_0xdcff('0x39')]=function(_0x2d0bae,_0x2c1c5d){var _0x2da728={'raw':![],'where':{'id':_0x2d0bae[_0xdcff('0x3a')]['id']}},_0x20b0c1={};_0x20b0c1[_0xdcff('0x27')]=_[_0xdcff('0x29')](db[_0xdcff('0x22')][_0xdcff('0x23')]);_0x20b0c1[_0xdcff('0x28')]=_[_0xdcff('0x29')](_0x2d0bae[_0xdcff('0x28')]);_0x20b0c1[_0xdcff('0x2a')]=_['intersection'](_0x20b0c1[_0xdcff('0x27')],_0x20b0c1[_0xdcff('0x28')]);_0x2da728['attributes']=_[_0xdcff('0x2b')](_0x20b0c1['model'],qs[_0xdcff('0x2d')](_0x2d0bae[_0xdcff('0x28')][_0xdcff('0x2d')]));_0x2da728[_0xdcff('0x2c')]=_0x2da728[_0xdcff('0x2c')]['length']?_0x2da728[_0xdcff('0x2c')]:_0x20b0c1[_0xdcff('0x27')];if(_0x2d0bae[_0xdcff('0x28')][_0xdcff('0x36')]){_0x2da728[_0xdcff('0x37')]=[{'all':!![]}];}_0x2da728=_['merge']({},_0x2da728,_0x2d0bae['options']);return db['SquareProject'][_0xdcff('0x3b')](_0x2da728)[_0xdcff('0x14')](handleEntityNotFound(_0x2c1c5d,null))[_0xdcff('0x14')](respondWithResult(_0x2c1c5d,null))[_0xdcff('0x3c')](handleError(_0x2c1c5d,null));};exports[_0xdcff('0x3d')]=function(_0x2f2716,_0x57d19d){return db[_0xdcff('0x22')]['create'](_0x2f2716[_0xdcff('0x3e')],{})['then'](function(_0x1b7599){var _0x3189a8=_0x2f2716[_0xdcff('0x3f')][_0xdcff('0x15')]({'plain':!![]});if(!_0x3189a8)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3189a8[_0xdcff('0x40')]===_0xdcff('0x3f')){var _0x35cc0d=_0x1b7599[_0xdcff('0x15')]({'plain':!![]});var _0x4486a2=_0xdcff('0x41');return db['UserProfileSection'][_0xdcff('0x3b')]({'where':{'name':_0x4486a2,'userProfileId':_0x3189a8['userProfileId']},'raw':!![]})[_0xdcff('0x14')](function(_0x58f1fa){if(_0x58f1fa&&_0x58f1fa['autoAssociation']===0x0){return db['UserProfileResource']['create']({'name':_0x35cc0d['name'],'resourceId':_0x35cc0d['id'],'type':_0x58f1fa[_0xdcff('0x1f')],'sectionId':_0x58f1fa['id']},{})['then'](function(){return _0x1b7599;});}else{return _0x1b7599;}})[_0xdcff('0x3c')](function(_0x4f8854){logger[_0xdcff('0x1d')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4f8854);throw _0x4f8854;});}return _0x1b7599;})[_0xdcff('0x14')](respondWithResult(_0x57d19d,0xc9))['catch'](handleError(_0x57d19d,null));};exports[_0xdcff('0x13')]=function(_0x1d442d,_0x56f1bd){if(_0x1d442d[_0xdcff('0x3e')]['id']){delete _0x1d442d[_0xdcff('0x3e')]['id'];}return db[_0xdcff('0x22')]['find']({'where':{'id':_0x1d442d[_0xdcff('0x3a')]['id']}})[_0xdcff('0x14')](handleEntityNotFound(_0x56f1bd,null))[_0xdcff('0x14')](saveUpdates(_0x1d442d[_0xdcff('0x3e')],null))[_0xdcff('0x14')](function(_0x5c346f){if(!_0x5c346f)return;var _0x277d57=_0x5c346f[_0xdcff('0x15')]({'plain':!![]});return _0x277d57;})[_0xdcff('0x14')](function(_0x368abf){var _0x54b373=new Redis(config[_0xdcff('0x7')]);_0x54b373[_0xdcff('0x18')]('agi',JSON[_0xdcff('0x1a')](_[_0xdcff('0x42')](_0x368abf,['id','name',_0xdcff('0x43')])));return _0x368abf;})[_0xdcff('0x14')](respondWithResult(_0x56f1bd,null))[_0xdcff('0x3c')](handleError(_0x56f1bd,null));};exports['destroy']=function(_0x5068f3,_0x5707b5){return db[_0xdcff('0x22')][_0xdcff('0x3b')]({'where':{'id':_0x5068f3[_0xdcff('0x3a')]['id']}})[_0xdcff('0x14')](handleEntityNotFound(_0x5707b5,null))[_0xdcff('0x14')](removeEntity(_0x5707b5,null))[_0xdcff('0x3c')](handleError(_0x5707b5,null));};