Built motion from commit (unavailable).|2.5.2
[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 _0x5def=['jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','localhost','./squareProject.socket','register','sendStatus','status','end','json','count','limit','set','Content-Range','reject','save','update','then','destroy','SquareProjects','UserProfileResource','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','offset','order','sort','filter','where','merge','VIRTUAL','options','SquareProject','includeAll','findAll','rows','show','params','include','create','user','get','UserProfileSection','userProfileId','autoAssociation','catch','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','find','addUsers','ids','removeUsers','isArray','emit','userSquareProject:remove','findOne','User','pick','getUsers','hasOwnProperty','nolimit','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash'];(function(_0x129334,_0x21e00e){var _0x5c29a3=function(_0x5b47da){while(--_0x5b47da){_0x129334['push'](_0x129334['shift']());}};_0x5c29a3(++_0x21e00e);}(_0x5def,0xb8));var _0xf5de=function(_0x5807d4,_0x29306b){_0x5807d4=_0x5807d4-0x0;var _0x5ddf9b=_0x5def[_0x5807d4];return _0x5ddf9b;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xf5de('0x0'));var rimraf=require(_0xf5de('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xf5de('0x2'));var rp=require('request-promise');var moment=require(_0xf5de('0x3'));var BPromise=require(_0xf5de('0x4'));var Mustache=require(_0xf5de('0x5'));var util=require(_0xf5de('0x6'));var path=require(_0xf5de('0x7'));var sox=require(_0xf5de('0x8'));var csv=require(_0xf5de('0x9'));var ejs=require(_0xf5de('0xa'));var fs=require('fs');var _=require(_0xf5de('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xf5de('0xc'));var deskjs=require(_0xf5de('0xd'));var toCsv=require(_0xf5de('0x9'));var querystring=require(_0xf5de('0xe'));var Papa=require(_0xf5de('0xf'));var Redis=require(_0xf5de('0x10'));var authService=require(_0xf5de('0x11'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xf5de('0x12'));var logger=require(_0xf5de('0x13'))(_0xf5de('0x14'));var utils=require(_0xf5de('0x15'));var config=require(_0xf5de('0x16'));var db=require(_0xf5de('0x17'))['db'];config[_0xf5de('0x18')]=_['defaults'](config[_0xf5de('0x18')],{'host':_0xf5de('0x19'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xf5de('0x1a'))[_0xf5de('0x1b')](socket);function respondWithStatusCode(_0x1b371a,_0x57b3b2){_0x57b3b2=_0x57b3b2||0xcc;return function(_0x4eaec5){if(_0x4eaec5){return _0x1b371a[_0xf5de('0x1c')](_0x57b3b2);}return _0x1b371a[_0xf5de('0x1d')](_0x57b3b2)[_0xf5de('0x1e')]();};}function respondWithResult(_0xea97a7,_0x32724e){_0x32724e=_0x32724e||0xc8;return function(_0x4b6ceb){if(_0x4b6ceb){return _0xea97a7['status'](_0x32724e)[_0xf5de('0x1f')](_0x4b6ceb);}};}function respondWithFilteredResult(_0x25fedf,_0x1c7305){return function(_0x483d28){if(_0x483d28){var _0x76fdce=_0x483d28[_0xf5de('0x20')],_0x1528e4=_0x1c7305['offset'],_0x5e649c=_0x1c7305['offset']+_0x1c7305[_0xf5de('0x21')],_0x2fdc30;if(_0x5e649c>=_0x76fdce){_0x5e649c=_0x76fdce;_0x2fdc30=0xc8;}else{_0x2fdc30=0xce;}_0x25fedf[_0xf5de('0x1d')](_0x2fdc30);return _0x25fedf[_0xf5de('0x22')](_0xf5de('0x23'),_0x1528e4+'-'+_0x5e649c+'/'+_0x76fdce)[_0xf5de('0x1f')](_0x483d28);}return null;};}function patchUpdates(_0x1feb32){return function(_0x55679c){try{jsonpatch['apply'](_0x55679c,_0x1feb32,!![]);}catch(_0x5e94d0){return BPromise[_0xf5de('0x24')](_0x5e94d0);}return _0x55679c[_0xf5de('0x25')]();};}function saveUpdates(_0xbc1686,_0x3b2931){return function(_0xe7d09d){if(_0xe7d09d){return _0xe7d09d[_0xf5de('0x26')](_0xbc1686)[_0xf5de('0x27')](function(_0xc0986a){return _0xc0986a;});}return null;};}function removeEntity(_0x39f458,_0x246b8d){return function(_0x117971){if(_0x117971){return _0x117971[_0xf5de('0x28')]()[_0xf5de('0x27')](function(){var _0x11c55e=_0x117971['get']({'plain':!![]});var _0x233850=_0xf5de('0x29');return db[_0xf5de('0x2a')][_0xf5de('0x28')]({'where':{'type':_0x233850,'resourceId':_0x11c55e['id']}})[_0xf5de('0x27')](function(){return _0x117971;});})['then'](function(){_0x39f458['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x2da13b,_0xeb5071){return function(_0x3b7953){if(!_0x3b7953){_0x2da13b[_0xf5de('0x1c')](0x194);}return _0x3b7953;};}function handleError(_0x1f3cd7,_0x47e892){_0x47e892=_0x47e892||0x1f4;return function(_0x162fb6){logger[_0xf5de('0x2b')](_0x162fb6[_0xf5de('0x2c')]);if(_0x162fb6['name']){delete _0x162fb6[_0xf5de('0x2d')];}_0x1f3cd7[_0xf5de('0x1d')](_0x47e892)[_0xf5de('0x2e')](_0x162fb6);};}exports[_0xf5de('0x2f')]=function(_0x3a0442,_0x1a4a10){var _0x50ab72={},_0x58b254={},_0x2128d0={'count':0x0,'rows':[]};var _0x2d3934=_[_0xf5de('0x30')](db['SquareProject'][_0xf5de('0x31')],function(_0xb0eb5c){return{'name':_0xb0eb5c[_0xf5de('0x32')],'type':_0xb0eb5c[_0xf5de('0x33')][_0xf5de('0x34')]};});_0x58b254[_0xf5de('0x35')]=_['map'](_0x2d3934,_0xf5de('0x2d'));_0x58b254['query']=_[_0xf5de('0x36')](_0x3a0442[_0xf5de('0x37')]);_0x58b254[_0xf5de('0x38')]=_[_0xf5de('0x39')](_0x58b254[_0xf5de('0x35')],_0x58b254[_0xf5de('0x37')]);_0x50ab72[_0xf5de('0x3a')]=_[_0xf5de('0x39')](_0x58b254[_0xf5de('0x35')],qs['fields'](_0x3a0442[_0xf5de('0x37')][_0xf5de('0x3b')]));_0x50ab72['attributes']=_0x50ab72[_0xf5de('0x3a')][_0xf5de('0x3c')]?_0x50ab72['attributes']:_0x58b254[_0xf5de('0x35')];if(!_0x3a0442[_0xf5de('0x37')]['hasOwnProperty']('nolimit')){_0x50ab72[_0xf5de('0x21')]=qs[_0xf5de('0x21')](_0x3a0442[_0xf5de('0x37')][_0xf5de('0x21')]);_0x50ab72['offset']=qs['offset'](_0x3a0442[_0xf5de('0x37')][_0xf5de('0x3d')]);}_0x50ab72[_0xf5de('0x3e')]=qs[_0xf5de('0x3f')](_0x3a0442[_0xf5de('0x37')][_0xf5de('0x3f')]);_0x50ab72['where']=qs[_0xf5de('0x38')](_['pick'](_0x3a0442[_0xf5de('0x37')],_0x58b254['filters']),_0x2d3934);if(_0x3a0442[_0xf5de('0x37')][_0xf5de('0x40')]){_0x50ab72[_0xf5de('0x41')]=_[_0xf5de('0x42')](_0x50ab72[_0xf5de('0x41')],{'$or':_[_0xf5de('0x30')](_0x2d3934,function(_0x4ed699){if(_0x4ed699[_0xf5de('0x33')]!==_0xf5de('0x43')){var _0x5b96c4={};_0x5b96c4[_0x4ed699[_0xf5de('0x2d')]]={'$like':'%'+_0x3a0442[_0xf5de('0x37')][_0xf5de('0x40')]+'%'};return _0x5b96c4;}})});}_0x50ab72=_['merge']({},_0x50ab72,_0x3a0442[_0xf5de('0x44')]);var _0x25aa0c={'where':_0x50ab72[_0xf5de('0x41')]};return db[_0xf5de('0x45')][_0xf5de('0x20')](_0x25aa0c)[_0xf5de('0x27')](function(_0x51d311){_0x2128d0[_0xf5de('0x20')]=_0x51d311;if(_0x3a0442[_0xf5de('0x37')][_0xf5de('0x46')]){_0x50ab72['include']=[{'all':!![]}];}return db['SquareProject'][_0xf5de('0x47')](_0x50ab72);})['then'](function(_0x2e5283){_0x2128d0[_0xf5de('0x48')]=_0x2e5283;return _0x2128d0;})[_0xf5de('0x27')](respondWithFilteredResult(_0x1a4a10,_0x50ab72))['catch'](handleError(_0x1a4a10,null));};exports[_0xf5de('0x49')]=function(_0x29f84e,_0xcec7a6){var _0x3b963a={'raw':![],'where':{'id':_0x29f84e[_0xf5de('0x4a')]['id']}},_0x9119ef={};_0x9119ef[_0xf5de('0x35')]=_[_0xf5de('0x36')](db['SquareProject'][_0xf5de('0x31')]);_0x9119ef[_0xf5de('0x37')]=_[_0xf5de('0x36')](_0x29f84e['query']);_0x9119ef['filters']=_[_0xf5de('0x39')](_0x9119ef[_0xf5de('0x35')],_0x9119ef['query']);_0x3b963a[_0xf5de('0x3a')]=_[_0xf5de('0x39')](_0x9119ef[_0xf5de('0x35')],qs[_0xf5de('0x3b')](_0x29f84e[_0xf5de('0x37')][_0xf5de('0x3b')]));_0x3b963a[_0xf5de('0x3a')]=_0x3b963a[_0xf5de('0x3a')][_0xf5de('0x3c')]?_0x3b963a[_0xf5de('0x3a')]:_0x9119ef['model'];if(_0x29f84e[_0xf5de('0x37')][_0xf5de('0x46')]){_0x3b963a[_0xf5de('0x4b')]=[{'all':!![]}];}_0x3b963a=_[_0xf5de('0x42')]({},_0x3b963a,_0x29f84e[_0xf5de('0x44')]);return db['SquareProject']['find'](_0x3b963a)['then'](handleEntityNotFound(_0xcec7a6,null))['then'](respondWithResult(_0xcec7a6,null))['catch'](handleError(_0xcec7a6,null));};exports[_0xf5de('0x4c')]=function(_0x13e7c8,_0x422158){return db[_0xf5de('0x45')][_0xf5de('0x4c')](_0x13e7c8['body'],{})['then'](function(_0x517612){var _0x74548d=_0x13e7c8[_0xf5de('0x4d')]['get']({'plain':!![]});if(!_0x74548d)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x74548d['role']===_0xf5de('0x4d')){var _0x55bc5b=_0x517612[_0xf5de('0x4e')]({'plain':!![]});var _0x24d48a='SquareProjects';return db[_0xf5de('0x4f')]['find']({'where':{'name':_0x24d48a,'userProfileId':_0x74548d[_0xf5de('0x50')]},'raw':!![]})[_0xf5de('0x27')](function(_0x56cccc){if(_0x56cccc&&_0x56cccc[_0xf5de('0x51')]===0x0){return db[_0xf5de('0x2a')][_0xf5de('0x4c')]({'name':_0x55bc5b['name'],'resourceId':_0x55bc5b['id'],'type':_0x56cccc[_0xf5de('0x2d')],'sectionId':_0x56cccc['id']},{})[_0xf5de('0x27')](function(){return _0x517612;});}else{return _0x517612;}})[_0xf5de('0x52')](function(_0x40cc15){logger['error'](_0xf5de('0x53'),_0x40cc15);throw _0x40cc15;});}return _0x517612;})[_0xf5de('0x27')](respondWithResult(_0x422158,0xc9))['catch'](handleError(_0x422158,null));};exports[_0xf5de('0x26')]=function(_0x1e7d91,_0x26dc1a){if(_0x1e7d91[_0xf5de('0x54')]['id']){delete _0x1e7d91[_0xf5de('0x54')]['id'];}return db[_0xf5de('0x45')][_0xf5de('0x55')]({'where':{'id':_0x1e7d91[_0xf5de('0x4a')]['id']}})[_0xf5de('0x27')](handleEntityNotFound(_0x26dc1a,null))[_0xf5de('0x27')](saveUpdates(_0x1e7d91[_0xf5de('0x54')],null))[_0xf5de('0x27')](respondWithResult(_0x26dc1a,null))[_0xf5de('0x52')](handleError(_0x26dc1a,null));};exports[_0xf5de('0x28')]=function(_0x42af4a,_0x3543f3){return db['SquareProject']['find']({'where':{'id':_0x42af4a['params']['id']}})[_0xf5de('0x27')](handleEntityNotFound(_0x3543f3,null))[_0xf5de('0x27')](removeEntity(_0x3543f3,null))['catch'](handleError(_0x3543f3,null));};exports[_0xf5de('0x56')]=function(_0x5147ad,_0x62f64,_0xd08fa4){return db[_0xf5de('0x45')]['find']({'where':{'id':_0x5147ad[_0xf5de('0x4a')]['id']}})[_0xf5de('0x27')](handleEntityNotFound(_0x62f64,null))[_0xf5de('0x27')](function(_0x28ea82){if(_0x28ea82){return _0x28ea82[_0xf5de('0x56')](_0x5147ad[_0xf5de('0x54')][_0xf5de('0x57')],_['omit'](_0x5147ad['body'],[_0xf5de('0x57'),'id'])||{});}})[_0xf5de('0x27')](respondWithResult(_0x62f64,null))[_0xf5de('0x52')](handleError(_0x62f64,null));};exports[_0xf5de('0x58')]=function(_0x56b49d,_0x661a8c,_0x43b7e4){return db[_0xf5de('0x45')][_0xf5de('0x55')]({'where':{'id':_0x56b49d[_0xf5de('0x4a')]['id']}})[_0xf5de('0x27')](handleEntityNotFound(_0x661a8c,null))[_0xf5de('0x27')](function(_0x429a7e){if(_0x429a7e){return _0x429a7e[_0xf5de('0x58')](_0x56b49d[_0xf5de('0x37')]['ids'])['then'](function(){if(_[_0xf5de('0x59')](_0x56b49d[_0xf5de('0x37')][_0xf5de('0x57')])){for(var _0x250621=0x0;_0x250621<_0x56b49d['query'][_0xf5de('0x57')]['length'];_0x250621+=0x1){socket[_0xf5de('0x5a')]('userSquareProject:remove',{'UserId':Number(_0x56b49d[_0xf5de('0x37')]['ids'][_0x250621]),'SquareProjectId':Number(_0x56b49d[_0xf5de('0x4a')]['id'])});}}else{socket['emit'](_0xf5de('0x5b'),{'UserId':Number(_0x56b49d[_0xf5de('0x37')][_0xf5de('0x57')]),'SquareProjectId':Number(_0x56b49d['params']['id'])});}});}})[_0xf5de('0x27')](respondWithStatusCode(_0x661a8c,null))['catch'](handleError(_0x661a8c,null));};exports['getUsers']=function(_0x1cfb96,_0x19c444,_0x20a49d){var _0x1f483d={};var _0x4f3a8b={};var _0x121ba9;var _0x2025f8;return db[_0xf5de('0x45')][_0xf5de('0x5c')]({'where':{'id':_0x1cfb96['params']['id']}})[_0xf5de('0x27')](handleEntityNotFound(_0x19c444,null))['then'](function(_0x77c17){if(_0x77c17){_0x121ba9=_0x77c17;_0x4f3a8b[_0xf5de('0x35')]=_['keys'](db[_0xf5de('0x5d')][_0xf5de('0x31')]);_0x4f3a8b[_0xf5de('0x37')]=_['keys'](_0x1cfb96[_0xf5de('0x37')]);_0x4f3a8b[_0xf5de('0x38')]=_[_0xf5de('0x39')](_0x4f3a8b[_0xf5de('0x35')],_0x4f3a8b[_0xf5de('0x37')]);_0x1f483d[_0xf5de('0x3a')]=_[_0xf5de('0x39')](_0x4f3a8b[_0xf5de('0x35')],qs[_0xf5de('0x3b')](_0x1cfb96[_0xf5de('0x37')][_0xf5de('0x3b')]));_0x1f483d[_0xf5de('0x3a')]=_0x1f483d['attributes']['length']?_0x1f483d[_0xf5de('0x3a')]:_0x4f3a8b[_0xf5de('0x35')];_0x1f483d['order']=qs[_0xf5de('0x3f')](_0x1cfb96[_0xf5de('0x37')][_0xf5de('0x3f')]);_0x1f483d[_0xf5de('0x41')]=qs['filters'](_[_0xf5de('0x5e')](_0x1cfb96['query'],_0x4f3a8b['filters']));if(_0x1cfb96[_0xf5de('0x37')][_0xf5de('0x40')]){_0x1f483d[_0xf5de('0x41')]=_[_0xf5de('0x42')](_0x1f483d[_0xf5de('0x41')],{'$or':_[_0xf5de('0x30')](_0x1f483d[_0xf5de('0x3a')],function(_0x46ad9a){var _0x3b9583={};_0x3b9583[_0x46ad9a]={'$like':'%'+_0x1cfb96[_0xf5de('0x37')][_0xf5de('0x40')]+'%'};return _0x3b9583;})});}_0x1f483d=_['merge']({},_0x1f483d,_0x1cfb96[_0xf5de('0x44')]);return _0x121ba9[_0xf5de('0x5f')](_0x1f483d);}})[_0xf5de('0x27')](function(_0x229457){if(_0x229457){_0x2025f8=_0x229457[_0xf5de('0x3c')];if(!_0x1cfb96['query'][_0xf5de('0x60')](_0xf5de('0x61'))){_0x1f483d[_0xf5de('0x21')]=qs[_0xf5de('0x21')](_0x1cfb96['query'][_0xf5de('0x21')]);_0x1f483d[_0xf5de('0x3d')]=qs['offset'](_0x1cfb96[_0xf5de('0x37')][_0xf5de('0x3d')]);}return _0x121ba9[_0xf5de('0x5f')](_0x1f483d);}})[_0xf5de('0x27')](function(_0x1baf73){if(_0x1baf73){return _0x1baf73?{'count':_0x2025f8,'rows':_0x1baf73}:null;}})['then'](respondWithResult(_0x19c444,null))[_0xf5de('0x52')](handleError(_0x19c444,null));};