4f5d34f33f14de8e8c1cfed387936aaf52b62787
[motion2.git] / server / api / intDeskAccount / intDeskAccount.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 _0x8eac=['DeskConfiguration','nolimit','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','DeskField','getFields','priority','remoteUri','username','password','consumerKey','consumerSecret','token','slice','lastIndexOf','GET','format','%s/custom_fields','application/json','authType','basic','headers','Authorization','%s:%s','toString','base64','entries','active','label','test','statusCode','stringify','send','Wrong\x20credentials','rimraf','zip-dir','request-promise','moment','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','end','status','offset','limit','undefined','count','set','Content-Range','json','apply','update','then','destroy','error','stack','name','index','map','DeskAccount','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','length','hasOwnProperty','order','sort','filters','pick','where','VIRTUAL','filter','merge','includeAll','include','findAll','rows','catch','show','fields','options','create','body','find','params','getConfigurations','findOne'];(function(_0x531e48,_0x4bb96b){var _0x202971=function(_0x403bf5){while(--_0x403bf5){_0x531e48['push'](_0x531e48['shift']());}};_0x202971(++_0x4bb96b);}(_0x8eac,0x9b));var _0xc8ea=function(_0x170682,_0x1fe7b7){_0x170682=_0x170682-0x0;var _0x2d9f0e=_0x8eac[_0x170682];return _0x2d9f0e;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xc8ea('0x0'));var zipdir=require(_0xc8ea('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xc8ea('0x2'));var moment=require(_0xc8ea('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xc8ea('0x4'));var path=require(_0xc8ea('0x5'));var sox=require(_0xc8ea('0x6'));var csv=require(_0xc8ea('0x7'));var ejs=require(_0xc8ea('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xc8ea('0x9'));var squel=require(_0xc8ea('0xa'));var crypto=require(_0xc8ea('0xb'));var jsforce=require(_0xc8ea('0xc'));var deskjs=require(_0xc8ea('0xd'));var toCsv=require('to-csv');var querystring=require(_0xc8ea('0xe'));var Papa=require('papaparse');var Redis=require(_0xc8ea('0xf'));var authService=require(_0xc8ea('0x10'));var qs=require(_0xc8ea('0x11'));var as=require(_0xc8ea('0x12'));var hardwareService=require(_0xc8ea('0x13'));var logger=require(_0xc8ea('0x14'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xc8ea('0x15'));var db=require(_0xc8ea('0x16'))['db'];var integrations=require(_0xc8ea('0x17'));function respondWithStatusCode(_0x21b0d7,_0x440708){_0x440708=_0x440708||0xcc;return function(_0x362df7){if(_0x362df7){return _0x21b0d7[_0xc8ea('0x18')](_0x440708);}return _0x21b0d7['status'](_0x440708)[_0xc8ea('0x19')]();};}function respondWithResult(_0x239737,_0x1915ad){_0x1915ad=_0x1915ad||0xc8;return function(_0x3ea1d9){if(_0x3ea1d9){return _0x239737[_0xc8ea('0x1a')](_0x1915ad)['json'](_0x3ea1d9);}};}function respondWithFilteredResult(_0x138b77,_0xebb07f){return function(_0x53b33d){if(_0x53b33d){var _0x1e182a=typeof _0xebb07f[_0xc8ea('0x1b')]==='undefined'&&typeof _0xebb07f[_0xc8ea('0x1c')]===_0xc8ea('0x1d');var _0x54f454=_0x53b33d['count'];var _0x15c6db=_0x1e182a?0x0:_0xebb07f[_0xc8ea('0x1b')];var _0x3fee0a=_0x1e182a?_0x53b33d[_0xc8ea('0x1e')]:_0xebb07f['offset']+_0xebb07f['limit'];var _0x60e448;if(_0x3fee0a>=_0x54f454){_0x3fee0a=_0x54f454;_0x60e448=0xc8;}else{_0x60e448=0xce;}_0x138b77[_0xc8ea('0x1a')](_0x60e448);return _0x138b77[_0xc8ea('0x1f')](_0xc8ea('0x20'),_0x15c6db+'-'+_0x3fee0a+'/'+_0x54f454)[_0xc8ea('0x21')](_0x53b33d);}return null;};}function patchUpdates(_0xfe3fab){return function(_0x5ae4eb){try{jsonpatch[_0xc8ea('0x22')](_0x5ae4eb,_0xfe3fab,!![]);}catch(_0x30f045){return BPromise['reject'](_0x30f045);}return _0x5ae4eb['save']();};}function saveUpdates(_0x877aac,_0x38511c){return function(_0xba0969){if(_0xba0969){return _0xba0969[_0xc8ea('0x23')](_0x877aac)[_0xc8ea('0x24')](function(_0x292d7){return _0x292d7;});}return null;};}function removeEntity(_0x22288d,_0xf59d9e){return function(_0x3873ce){if(_0x3873ce){return _0x3873ce[_0xc8ea('0x25')]()[_0xc8ea('0x24')](function(){_0x22288d[_0xc8ea('0x1a')](0xcc)[_0xc8ea('0x19')]();});}};}function handleEntityNotFound(_0x3aaf39,_0x2c0af9){return function(_0x1c1fcc){if(!_0x1c1fcc){_0x3aaf39['sendStatus'](0x194);}return _0x1c1fcc;};}function handleError(_0x1a3789,_0x3af112){_0x3af112=_0x3af112||0x1f4;return function(_0x52f748){logger[_0xc8ea('0x26')](_0x52f748[_0xc8ea('0x27')]);if(_0x52f748['name']){delete _0x52f748[_0xc8ea('0x28')];}_0x1a3789[_0xc8ea('0x1a')](_0x3af112)['send'](_0x52f748);};}exports[_0xc8ea('0x29')]=function(_0x1097ac,_0x37b7c1){var _0x7341ed={},_0x39d7cb={},_0x5d16ee={'count':0x0,'rows':[]};var _0x373f75=_[_0xc8ea('0x2a')](db[_0xc8ea('0x2b')][_0xc8ea('0x2c')],function(_0x43b9db){return{'name':_0x43b9db[_0xc8ea('0x2d')],'type':_0x43b9db[_0xc8ea('0x2e')][_0xc8ea('0x2f')]};});_0x39d7cb[_0xc8ea('0x30')]=_[_0xc8ea('0x2a')](_0x373f75,'name');_0x39d7cb[_0xc8ea('0x31')]=_[_0xc8ea('0x32')](_0x1097ac[_0xc8ea('0x31')]);_0x39d7cb['filters']=_[_0xc8ea('0x33')](_0x39d7cb['model'],_0x39d7cb['query']);_0x7341ed[_0xc8ea('0x34')]=_['intersection'](_0x39d7cb[_0xc8ea('0x30')],qs['fields'](_0x1097ac[_0xc8ea('0x31')]['fields']));_0x7341ed[_0xc8ea('0x34')]=_0x7341ed[_0xc8ea('0x34')][_0xc8ea('0x35')]?_0x7341ed[_0xc8ea('0x34')]:_0x39d7cb[_0xc8ea('0x30')];if(!_0x1097ac[_0xc8ea('0x31')][_0xc8ea('0x36')]('nolimit')){_0x7341ed[_0xc8ea('0x1c')]=qs[_0xc8ea('0x1c')](_0x1097ac['query'][_0xc8ea('0x1c')]);_0x7341ed[_0xc8ea('0x1b')]=qs[_0xc8ea('0x1b')](_0x1097ac[_0xc8ea('0x31')][_0xc8ea('0x1b')]);}_0x7341ed[_0xc8ea('0x37')]=qs[_0xc8ea('0x38')](_0x1097ac[_0xc8ea('0x31')]['sort']);_0x7341ed['where']=qs[_0xc8ea('0x39')](_[_0xc8ea('0x3a')](_0x1097ac[_0xc8ea('0x31')],_0x39d7cb['filters']),_0x373f75);if(_0x1097ac[_0xc8ea('0x31')]['filter']){_0x7341ed['where']=_['merge'](_0x7341ed[_0xc8ea('0x3b')],{'$or':_['map'](_0x373f75,function(_0x590cd0){if(_0x590cd0[_0xc8ea('0x2e')]!==_0xc8ea('0x3c')){var _0x5a584c={};_0x5a584c[_0x590cd0['name']]={'$like':'%'+_0x1097ac[_0xc8ea('0x31')][_0xc8ea('0x3d')]+'%'};return _0x5a584c;}})});}_0x7341ed=_[_0xc8ea('0x3e')]({},_0x7341ed,_0x1097ac['options']);var _0x58617a={'where':_0x7341ed['where']};return db[_0xc8ea('0x2b')][_0xc8ea('0x1e')](_0x58617a)['then'](function(_0x4f1e60){_0x5d16ee[_0xc8ea('0x1e')]=_0x4f1e60;if(_0x1097ac['query'][_0xc8ea('0x3f')]){_0x7341ed[_0xc8ea('0x40')]=[{'all':!![]}];}return db[_0xc8ea('0x2b')][_0xc8ea('0x41')](_0x7341ed);})['then'](function(_0x33fe01){_0x5d16ee[_0xc8ea('0x42')]=_0x33fe01;return _0x5d16ee;})['then'](respondWithFilteredResult(_0x37b7c1,_0x7341ed))[_0xc8ea('0x43')](handleError(_0x37b7c1,null));};exports[_0xc8ea('0x44')]=function(_0x32ed87,_0x54aaba){var _0x3d65c4={'raw':![],'where':{'id':_0x32ed87['params']['id']}},_0x2385dd={};_0x2385dd[_0xc8ea('0x30')]=_['keys'](db[_0xc8ea('0x2b')][_0xc8ea('0x2c')]);_0x2385dd['query']=_[_0xc8ea('0x32')](_0x32ed87[_0xc8ea('0x31')]);_0x2385dd['filters']=_['intersection'](_0x2385dd['model'],_0x2385dd[_0xc8ea('0x31')]);_0x3d65c4['attributes']=_['intersection'](_0x2385dd[_0xc8ea('0x30')],qs['fields'](_0x32ed87[_0xc8ea('0x31')][_0xc8ea('0x45')]));_0x3d65c4[_0xc8ea('0x34')]=_0x3d65c4[_0xc8ea('0x34')]['length']?_0x3d65c4[_0xc8ea('0x34')]:_0x2385dd['model'];if(_0x32ed87['query'][_0xc8ea('0x3f')]){_0x3d65c4[_0xc8ea('0x40')]=[{'all':!![]}];}_0x3d65c4=_[_0xc8ea('0x3e')]({},_0x3d65c4,_0x32ed87[_0xc8ea('0x46')]);return db[_0xc8ea('0x2b')]['find'](_0x3d65c4)['then'](handleEntityNotFound(_0x54aaba,null))[_0xc8ea('0x24')](respondWithResult(_0x54aaba,null))[_0xc8ea('0x43')](handleError(_0x54aaba,null));};exports[_0xc8ea('0x47')]=function(_0x27d2fc,_0x275627){return db[_0xc8ea('0x2b')]['create'](_0x27d2fc[_0xc8ea('0x48')],{})[_0xc8ea('0x24')](respondWithResult(_0x275627,0xc9))[_0xc8ea('0x43')](handleError(_0x275627,null));};exports[_0xc8ea('0x23')]=function(_0xdb14fb,_0x3465cc){if(_0xdb14fb['body']['id']){delete _0xdb14fb[_0xc8ea('0x48')]['id'];}return db[_0xc8ea('0x2b')][_0xc8ea('0x49')]({'where':{'id':_0xdb14fb['params']['id']}})[_0xc8ea('0x24')](handleEntityNotFound(_0x3465cc,null))[_0xc8ea('0x24')](saveUpdates(_0xdb14fb[_0xc8ea('0x48')],null))['then'](respondWithResult(_0x3465cc,null))[_0xc8ea('0x43')](handleError(_0x3465cc,null));};exports[_0xc8ea('0x25')]=function(_0x2fc695,_0x432535){return db[_0xc8ea('0x2b')]['find']({'where':{'id':_0x2fc695[_0xc8ea('0x4a')]['id']}})[_0xc8ea('0x24')](handleEntityNotFound(_0x432535,null))[_0xc8ea('0x24')](removeEntity(_0x432535,null))[_0xc8ea('0x43')](handleError(_0x432535,null));};exports[_0xc8ea('0x4b')]=function(_0x1f4952,_0x34b700,_0x424850){var _0x5a375a={};var _0x55eaa3={};var _0x4c1a2c;var _0x45b0d9;return db[_0xc8ea('0x2b')][_0xc8ea('0x4c')]({'where':{'id':_0x1f4952[_0xc8ea('0x4a')]['id']}})['then'](handleEntityNotFound(_0x34b700,null))[_0xc8ea('0x24')](function(_0x2114b9){if(_0x2114b9){_0x4c1a2c=_0x2114b9;_0x55eaa3[_0xc8ea('0x30')]=_[_0xc8ea('0x32')](db[_0xc8ea('0x4d')][_0xc8ea('0x2c')]);_0x55eaa3[_0xc8ea('0x31')]=_['keys'](_0x1f4952[_0xc8ea('0x31')]);_0x55eaa3['filters']=_[_0xc8ea('0x33')](_0x55eaa3[_0xc8ea('0x30')],_0x55eaa3[_0xc8ea('0x31')]);_0x5a375a[_0xc8ea('0x34')]=_[_0xc8ea('0x33')](_0x55eaa3[_0xc8ea('0x30')],qs[_0xc8ea('0x45')](_0x1f4952[_0xc8ea('0x31')][_0xc8ea('0x45')]));_0x5a375a[_0xc8ea('0x34')]=_0x5a375a[_0xc8ea('0x34')]['length']?_0x5a375a['attributes']:_0x55eaa3[_0xc8ea('0x30')];_0x5a375a[_0xc8ea('0x37')]=qs[_0xc8ea('0x38')](_0x1f4952['query'][_0xc8ea('0x38')]);_0x5a375a[_0xc8ea('0x3b')]=qs[_0xc8ea('0x39')](_[_0xc8ea('0x3a')](_0x1f4952[_0xc8ea('0x31')],_0x55eaa3[_0xc8ea('0x39')]));if(_0x1f4952[_0xc8ea('0x31')][_0xc8ea('0x3d')]){_0x5a375a[_0xc8ea('0x3b')]=_[_0xc8ea('0x3e')](_0x5a375a[_0xc8ea('0x3b')],{'$or':_[_0xc8ea('0x2a')](_0x5a375a[_0xc8ea('0x34')],function(_0x562ebd){var _0x56439f={};_0x56439f[_0x562ebd]={'$like':'%'+_0x1f4952[_0xc8ea('0x31')]['filter']+'%'};return _0x56439f;})});}_0x5a375a=_[_0xc8ea('0x3e')]({},_0x5a375a,_0x1f4952[_0xc8ea('0x46')]);return _0x4c1a2c[_0xc8ea('0x4b')](_0x5a375a);}})[_0xc8ea('0x24')](function(_0x10b2cd){if(_0x10b2cd){_0x45b0d9=_0x10b2cd['length'];if(!_0x1f4952[_0xc8ea('0x31')][_0xc8ea('0x36')](_0xc8ea('0x4e'))){_0x5a375a['limit']=qs[_0xc8ea('0x1c')](_0x1f4952[_0xc8ea('0x31')][_0xc8ea('0x1c')]);_0x5a375a[_0xc8ea('0x1b')]=qs['offset'](_0x1f4952[_0xc8ea('0x31')][_0xc8ea('0x1b')]);}return _0x4c1a2c[_0xc8ea('0x4b')](_0x5a375a);}})[_0xc8ea('0x24')](function(_0x316b61){if(_0x316b61){return _0x316b61?{'count':_0x45b0d9,'rows':_0x316b61}:null;}})[_0xc8ea('0x24')](respondWithResult(_0x34b700,null))[_0xc8ea('0x43')](handleError(_0x34b700,null));};exports[_0xc8ea('0x4f')]=function(_0x4514a3,_0xbb5ecb,_0x1c2554){if(_0x4514a3[_0xc8ea('0x48')]['id']){delete _0x4514a3[_0xc8ea('0x48')]['id'];}return db[_0xc8ea('0x2b')][_0xc8ea('0x4c')]({'where':{'id':_0x4514a3['params']['id']}})[_0xc8ea('0x24')](handleEntityNotFound(_0xbb5ecb,null))[_0xc8ea('0x24')](function(_0x4bd7cd){if(_0x4bd7cd){_0x4514a3['body'][_0xc8ea('0x50')]=_0x4bd7cd['id'];_0x4514a3[_0xc8ea('0x48')][_0xc8ea('0x51')]=integrations[_0xc8ea('0x52')](_0x4514a3[_0xc8ea('0x48')][_0xc8ea('0x53')],_0x4514a3['body']['type']);_0x4514a3[_0xc8ea('0x48')][_0xc8ea('0x54')]=integrations[_0xc8ea('0x55')](_0x4514a3['body'][_0xc8ea('0x53')],_0x4514a3[_0xc8ea('0x48')][_0xc8ea('0x2e')]);return db[_0xc8ea('0x4d')][_0xc8ea('0x47')](_0x4514a3[_0xc8ea('0x48')],{'include':[{'model':db[_0xc8ea('0x56')],'as':_0xc8ea('0x51')},{'model':db[_0xc8ea('0x56')],'as':'Descriptions'}]});}return null;})[_0xc8ea('0x24')](respondWithResult(_0xbb5ecb,null))[_0xc8ea('0x43')](handleError(_0xbb5ecb,null));};exports[_0xc8ea('0x57')]=function(_0xa5c0e4,_0x52ea8f,_0x286de8){var _0x17ec0a=[{'name':_0xc8ea('0x58'),'label':_0xc8ea('0x58'),'custom':![],'options':[{'name':0x1,'value':0x1},{'name':0x2,'value':0x2},{'name':0x3,'value':0x3},{'name':0x4,'value':0x4},{'name':0x5,'value':0x5},{'name':0x6,'value':0x6},{'name':0x7,'value':0x7},{'name':0x8,'value':0x8},{'name':0x9,'value':0x9},{'name':0xa,'value':0xa}]}];var _0x43b5e0='';return db[_0xc8ea('0x2b')][_0xc8ea('0x4c')]({'where':{'id':_0xa5c0e4[_0xc8ea('0x4a')]['id']},'attributes':['id',_0xc8ea('0x59'),'authType',_0xc8ea('0x5a'),_0xc8ea('0x5b'),_0xc8ea('0x5c'),_0xc8ea('0x5d'),_0xc8ea('0x5e'),'tokenSecret']})[_0xc8ea('0x24')](handleEntityNotFound(_0x52ea8f,null))[_0xc8ea('0x24')](function(_0x503d48){if(_0x503d48){_0x43b5e0=_0x503d48[_0xc8ea('0x59')];var _0x5857bd=_0x43b5e0[_0xc8ea('0x5f')](-0x1);if(_0x5857bd==='/'){_0x43b5e0=_0x43b5e0['substring'](0x0,_0x43b5e0[_0xc8ea('0x60')](_0x5857bd));}var _0x32a3c6={'method':_0xc8ea('0x61'),'uri':util[_0xc8ea('0x62')](_0xc8ea('0x63'),_0x43b5e0),'headers':{'Content-Type':'application/json','Accept':_0xc8ea('0x64')},'json':!![]};if(_0x503d48[_0xc8ea('0x65')]===_0xc8ea('0x66')){_0x32a3c6[_0xc8ea('0x67')][_0xc8ea('0x68')]=util[_0xc8ea('0x62')]('Basic\x20%s',new Buffer(util[_0xc8ea('0x62')](_0xc8ea('0x69'),_0x503d48[_0xc8ea('0x5a')],_0x503d48['password']))[_0xc8ea('0x6a')](_0xc8ea('0x6b')));}return rp(_0x32a3c6)['then'](function(_0x57c6be){return _0x17ec0a['concat'](_[_0xc8ea('0x2a')](_0x57c6be['_embedded'][_0xc8ea('0x6c')],function(_0x96c9aa){return{'id':_0x96c9aa['name'],'name':_0x96c9aa[_0xc8ea('0x28')],'type':_0x96c9aa['type'],'active':_0x96c9aa[_0xc8ea('0x6d')],'label':_0x96c9aa[_0xc8ea('0x6e')],'custom':!![]};}));});}})[_0xc8ea('0x24')](function(_0x26ab86){return{'count':_0x26ab86[_0xc8ea('0x35')],'rows':_0x26ab86};})[_0xc8ea('0x24')](respondWithResult(_0x52ea8f,null))[_0xc8ea('0x43')](function(_0x439b97){var _0x5d08a6=_0xa5c0e4['query'][_0xc8ea('0x6f')]?0x1f4:_0x439b97[_0xc8ea('0x70')]||0x1f4;logger[_0xc8ea('0x26')]('getFields,\x20%s,\x20%s,\x20%s',_0xc8ea('0x57'),_0x5d08a6,JSON[_0xc8ea('0x71')](_0x439b97));delete _0x439b97[_0xc8ea('0x28')];if(_0x5d08a6===0x191){_0x5d08a6=0x190;}_0x52ea8f[_0xc8ea('0x1a')](_0x5d08a6)[_0xc8ea('0x72')](_0xa5c0e4[_0xc8ea('0x31')][_0xc8ea('0x6f')]?{'message':_0xc8ea('0x73'),'statusCode':_0x439b97['statusCode']}:_0x439b97);});};