Built motion from commit d1eab355.|2.6.28
[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 _0xa73a=['sort','where','pick','filter','merge','VIRTUAL','includeAll','include','catch','params','keys','create','body','find','destroy','getConfigurations','findOne','DeskConfiguration','options','addConfiguration','AccountId','Subjects','getSubjects','channel','getDescriptions','DeskField','Descriptions','getFields','priority','remoteUri','authType','password','consumerSecret','token','tokenSecret','slice','substring','lastIndexOf','GET','format','application/json','basic','headers','Authorization','Basic\x20%s','%s:%s','username','base64','concat','_embedded','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','test','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','querystring','ioredis','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','json','offset','limit','undefined','count','set','Content-Range','apply','reject','update','then','end','sendStatus','error','stack','name','send','index','map','DeskAccount','rawAttributes','fieldName','type','key','model','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order'];(function(_0x47681a,_0x37c0ab){var _0x392c62=function(_0x15db86){while(--_0x15db86){_0x47681a['push'](_0x47681a['shift']());}};_0x392c62(++_0x37c0ab);}(_0xa73a,0x118));var _0xaa73=function(_0x257841,_0x389b4d){_0x257841=_0x257841-0x0;var _0x1b87ed=_0xa73a[_0x257841];return _0x1b87ed;};'use strict';var emlformat=require(_0xaa73('0x0'));var rimraf=require(_0xaa73('0x1'));var zipdir=require(_0xaa73('0x2'));var jsonpatch=require(_0xaa73('0x3'));var rp=require('request-promise');var moment=require(_0xaa73('0x4'));var BPromise=require(_0xaa73('0x5'));var Mustache=require(_0xaa73('0x6'));var util=require(_0xaa73('0x7'));var path=require(_0xaa73('0x8'));var sox=require(_0xaa73('0x9'));var csv=require(_0xaa73('0xa'));var ejs=require(_0xaa73('0xb'));var fs=require('fs');var fs_extra=require(_0xaa73('0xc'));var _=require(_0xaa73('0xd'));var squel=require(_0xaa73('0xe'));var crypto=require(_0xaa73('0xf'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xaa73('0xa'));var querystring=require(_0xaa73('0x10'));var Papa=require('papaparse');var Redis=require(_0xaa73('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xaa73('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xaa73('0x13'))('api');var utils=require(_0xaa73('0x14'));var config=require(_0xaa73('0x15'));var licenseUtil=require(_0xaa73('0x16'));var db=require(_0xaa73('0x17'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x30bb2b,_0x3aee00){_0x3aee00=_0x3aee00||0xcc;return function(_0x33360d){if(_0x33360d){return _0x30bb2b['sendStatus'](_0x3aee00);}return _0x30bb2b[_0xaa73('0x18')](_0x3aee00)['end']();};}function respondWithResult(_0x3f05c2,_0x286b43){_0x286b43=_0x286b43||0xc8;return function(_0x4fbd61){if(_0x4fbd61){return _0x3f05c2[_0xaa73('0x18')](_0x286b43)[_0xaa73('0x19')](_0x4fbd61);}};}function respondWithFilteredResult(_0x48cce7,_0x241aac){return function(_0x47aef8){if(_0x47aef8){var _0xd32907=typeof _0x241aac[_0xaa73('0x1a')]==='undefined'&&typeof _0x241aac[_0xaa73('0x1b')]===_0xaa73('0x1c');var _0x434e3a=_0x47aef8[_0xaa73('0x1d')];var _0x1fe895=_0xd32907?0x0:_0x241aac[_0xaa73('0x1a')];var _0x1560dd=_0xd32907?_0x47aef8[_0xaa73('0x1d')]:_0x241aac[_0xaa73('0x1a')]+_0x241aac[_0xaa73('0x1b')];var _0x4696c2;if(_0x1560dd>=_0x434e3a){_0x1560dd=_0x434e3a;_0x4696c2=0xc8;}else{_0x4696c2=0xce;}_0x48cce7[_0xaa73('0x18')](_0x4696c2);return _0x48cce7[_0xaa73('0x1e')](_0xaa73('0x1f'),_0x1fe895+'-'+_0x1560dd+'/'+_0x434e3a)[_0xaa73('0x19')](_0x47aef8);}return null;};}function patchUpdates(_0x5876e8){return function(_0x48547d){try{jsonpatch[_0xaa73('0x20')](_0x48547d,_0x5876e8,!![]);}catch(_0x2d8eec){return BPromise[_0xaa73('0x21')](_0x2d8eec);}return _0x48547d['save']();};}function saveUpdates(_0x18ed9e,_0xe972f1){return function(_0x3616b6){if(_0x3616b6){return _0x3616b6[_0xaa73('0x22')](_0x18ed9e)[_0xaa73('0x23')](function(_0x17ba8b){return _0x17ba8b;});}return null;};}function removeEntity(_0x3db350,_0x37f4a5){return function(_0x7464f){if(_0x7464f){return _0x7464f['destroy']()['then'](function(){_0x3db350[_0xaa73('0x18')](0xcc)[_0xaa73('0x24')]();});}};}function handleEntityNotFound(_0x27eece,_0x26b138){return function(_0x278110){if(!_0x278110){_0x27eece[_0xaa73('0x25')](0x194);}return _0x278110;};}function handleError(_0x4ca4bf,_0x404290){_0x404290=_0x404290||0x1f4;return function(_0x1c0404){logger[_0xaa73('0x26')](_0x1c0404[_0xaa73('0x27')]);if(_0x1c0404[_0xaa73('0x28')]){delete _0x1c0404[_0xaa73('0x28')];}_0x4ca4bf['status'](_0x404290)[_0xaa73('0x29')](_0x1c0404);};}exports[_0xaa73('0x2a')]=function(_0x47c198,_0x52a351){var _0x4f4564={},_0x318fef={},_0x40767d={'count':0x0,'rows':[]};var _0x25fa58=_[_0xaa73('0x2b')](db[_0xaa73('0x2c')][_0xaa73('0x2d')],function(_0x536307){return{'name':_0x536307[_0xaa73('0x2e')],'type':_0x536307[_0xaa73('0x2f')][_0xaa73('0x30')]};});_0x318fef[_0xaa73('0x31')]=_[_0xaa73('0x2b')](_0x25fa58,_0xaa73('0x28'));_0x318fef['query']=_['keys'](_0x47c198[_0xaa73('0x32')]);_0x318fef[_0xaa73('0x33')]=_['intersection'](_0x318fef[_0xaa73('0x31')],_0x318fef[_0xaa73('0x32')]);_0x4f4564[_0xaa73('0x34')]=_[_0xaa73('0x35')](_0x318fef[_0xaa73('0x31')],qs[_0xaa73('0x36')](_0x47c198['query']['fields']));_0x4f4564[_0xaa73('0x34')]=_0x4f4564[_0xaa73('0x34')][_0xaa73('0x37')]?_0x4f4564[_0xaa73('0x34')]:_0x318fef[_0xaa73('0x31')];if(!_0x47c198[_0xaa73('0x32')][_0xaa73('0x38')](_0xaa73('0x39'))){_0x4f4564['limit']=qs[_0xaa73('0x1b')](_0x47c198[_0xaa73('0x32')][_0xaa73('0x1b')]);_0x4f4564[_0xaa73('0x1a')]=qs['offset'](_0x47c198[_0xaa73('0x32')]['offset']);}_0x4f4564[_0xaa73('0x3a')]=qs[_0xaa73('0x3b')](_0x47c198[_0xaa73('0x32')][_0xaa73('0x3b')]);_0x4f4564[_0xaa73('0x3c')]=qs[_0xaa73('0x33')](_[_0xaa73('0x3d')](_0x47c198[_0xaa73('0x32')],_0x318fef[_0xaa73('0x33')]),_0x25fa58);if(_0x47c198[_0xaa73('0x32')][_0xaa73('0x3e')]){_0x4f4564[_0xaa73('0x3c')]=_[_0xaa73('0x3f')](_0x4f4564['where'],{'$or':_['map'](_0x25fa58,function(_0x35998d){if(_0x35998d['type']!==_0xaa73('0x40')){var _0x4c6bd5={};_0x4c6bd5[_0x35998d[_0xaa73('0x28')]]={'$like':'%'+_0x47c198[_0xaa73('0x32')][_0xaa73('0x3e')]+'%'};return _0x4c6bd5;}})});}_0x4f4564=_[_0xaa73('0x3f')]({},_0x4f4564,_0x47c198['options']);var _0x43b5d6={'where':_0x4f4564[_0xaa73('0x3c')]};return db[_0xaa73('0x2c')][_0xaa73('0x1d')](_0x43b5d6)[_0xaa73('0x23')](function(_0xc36174){_0x40767d[_0xaa73('0x1d')]=_0xc36174;if(_0x47c198[_0xaa73('0x32')][_0xaa73('0x41')]){_0x4f4564[_0xaa73('0x42')]=[{'all':!![]}];}return db[_0xaa73('0x2c')]['findAll'](_0x4f4564);})[_0xaa73('0x23')](function(_0x2f054c){_0x40767d['rows']=_0x2f054c;return _0x40767d;})[_0xaa73('0x23')](respondWithFilteredResult(_0x52a351,_0x4f4564))[_0xaa73('0x43')](handleError(_0x52a351,null));};exports['show']=function(_0x3fd121,_0xf60724){var _0x29f134={'raw':![],'where':{'id':_0x3fd121[_0xaa73('0x44')]['id']}},_0x2a90e9={};_0x2a90e9[_0xaa73('0x31')]=_[_0xaa73('0x45')](db[_0xaa73('0x2c')][_0xaa73('0x2d')]);_0x2a90e9[_0xaa73('0x32')]=_[_0xaa73('0x45')](_0x3fd121[_0xaa73('0x32')]);_0x2a90e9[_0xaa73('0x33')]=_[_0xaa73('0x35')](_0x2a90e9[_0xaa73('0x31')],_0x2a90e9[_0xaa73('0x32')]);_0x29f134[_0xaa73('0x34')]=_['intersection'](_0x2a90e9[_0xaa73('0x31')],qs['fields'](_0x3fd121[_0xaa73('0x32')][_0xaa73('0x36')]));_0x29f134['attributes']=_0x29f134[_0xaa73('0x34')][_0xaa73('0x37')]?_0x29f134[_0xaa73('0x34')]:_0x2a90e9[_0xaa73('0x31')];if(_0x3fd121[_0xaa73('0x32')][_0xaa73('0x41')]){_0x29f134[_0xaa73('0x42')]=[{'all':!![]}];}_0x29f134=_[_0xaa73('0x3f')]({},_0x29f134,_0x3fd121['options']);return db[_0xaa73('0x2c')]['find'](_0x29f134)[_0xaa73('0x23')](handleEntityNotFound(_0xf60724,null))[_0xaa73('0x23')](respondWithResult(_0xf60724,null))[_0xaa73('0x43')](handleError(_0xf60724,null));};exports[_0xaa73('0x46')]=function(_0x311846,_0x44d03f){return db[_0xaa73('0x2c')][_0xaa73('0x46')](_0x311846['body'],{})[_0xaa73('0x23')](respondWithResult(_0x44d03f,0xc9))[_0xaa73('0x43')](handleError(_0x44d03f,null));};exports[_0xaa73('0x22')]=function(_0x3a7d01,_0x4326b){if(_0x3a7d01[_0xaa73('0x47')]['id']){delete _0x3a7d01[_0xaa73('0x47')]['id'];}return db[_0xaa73('0x2c')][_0xaa73('0x48')]({'where':{'id':_0x3a7d01['params']['id']}})[_0xaa73('0x23')](handleEntityNotFound(_0x4326b,null))[_0xaa73('0x23')](saveUpdates(_0x3a7d01['body'],null))[_0xaa73('0x23')](respondWithResult(_0x4326b,null))[_0xaa73('0x43')](handleError(_0x4326b,null));};exports[_0xaa73('0x49')]=function(_0x366b2c,_0x29c4f8){return db['DeskAccount'][_0xaa73('0x48')]({'where':{'id':_0x366b2c[_0xaa73('0x44')]['id']}})[_0xaa73('0x23')](handleEntityNotFound(_0x29c4f8,null))[_0xaa73('0x23')](removeEntity(_0x29c4f8,null))[_0xaa73('0x43')](handleError(_0x29c4f8,null));};exports[_0xaa73('0x4a')]=function(_0xc312a5,_0x260976,_0x26f7e8){var _0x4f12b5={};var _0x1ba37c={};var _0x21b730;var _0x23725c;return db[_0xaa73('0x2c')][_0xaa73('0x4b')]({'where':{'id':_0xc312a5['params']['id']}})[_0xaa73('0x23')](handleEntityNotFound(_0x260976,null))[_0xaa73('0x23')](function(_0x481687){if(_0x481687){_0x21b730=_0x481687;_0x1ba37c['model']=_['keys'](db[_0xaa73('0x4c')][_0xaa73('0x2d')]);_0x1ba37c[_0xaa73('0x32')]=_[_0xaa73('0x45')](_0xc312a5[_0xaa73('0x32')]);_0x1ba37c[_0xaa73('0x33')]=_['intersection'](_0x1ba37c[_0xaa73('0x31')],_0x1ba37c[_0xaa73('0x32')]);_0x4f12b5[_0xaa73('0x34')]=_['intersection'](_0x1ba37c['model'],qs[_0xaa73('0x36')](_0xc312a5['query'][_0xaa73('0x36')]));_0x4f12b5['attributes']=_0x4f12b5['attributes'][_0xaa73('0x37')]?_0x4f12b5[_0xaa73('0x34')]:_0x1ba37c[_0xaa73('0x31')];_0x4f12b5[_0xaa73('0x3a')]=qs['sort'](_0xc312a5[_0xaa73('0x32')][_0xaa73('0x3b')]);_0x4f12b5[_0xaa73('0x3c')]=qs[_0xaa73('0x33')](_[_0xaa73('0x3d')](_0xc312a5[_0xaa73('0x32')],_0x1ba37c[_0xaa73('0x33')]));if(_0xc312a5[_0xaa73('0x32')]['filter']){_0x4f12b5[_0xaa73('0x3c')]=_[_0xaa73('0x3f')](_0x4f12b5[_0xaa73('0x3c')],{'$or':_[_0xaa73('0x2b')](_0x4f12b5[_0xaa73('0x34')],function(_0xc53c7){var _0xeaa693={};_0xeaa693[_0xc53c7]={'$like':'%'+_0xc312a5[_0xaa73('0x32')][_0xaa73('0x3e')]+'%'};return _0xeaa693;})});}_0x4f12b5=_[_0xaa73('0x3f')]({},_0x4f12b5,_0xc312a5[_0xaa73('0x4d')]);return _0x21b730[_0xaa73('0x4a')](_0x4f12b5);}})[_0xaa73('0x23')](function(_0x3afbb0){if(_0x3afbb0){_0x23725c=_0x3afbb0['length'];if(!_0xc312a5[_0xaa73('0x32')][_0xaa73('0x38')](_0xaa73('0x39'))){_0x4f12b5[_0xaa73('0x1b')]=qs['limit'](_0xc312a5[_0xaa73('0x32')]['limit']);_0x4f12b5['offset']=qs[_0xaa73('0x1a')](_0xc312a5['query'][_0xaa73('0x1a')]);}return _0x21b730[_0xaa73('0x4a')](_0x4f12b5);}})['then'](function(_0x447fca){if(_0x447fca){return _0x447fca?{'count':_0x23725c,'rows':_0x447fca}:null;}})[_0xaa73('0x23')](respondWithResult(_0x260976,null))[_0xaa73('0x43')](handleError(_0x260976,null));};exports[_0xaa73('0x4e')]=function(_0x316229,_0x32bd0,_0x7877b9){if(_0x316229['body']['id']){delete _0x316229['body']['id'];}return db['DeskAccount'][_0xaa73('0x4b')]({'where':{'id':_0x316229[_0xaa73('0x44')]['id']}})[_0xaa73('0x23')](handleEntityNotFound(_0x32bd0,null))[_0xaa73('0x23')](function(_0x5eab73){if(_0x5eab73){_0x316229[_0xaa73('0x47')][_0xaa73('0x4f')]=_0x5eab73['id'];_0x316229[_0xaa73('0x47')][_0xaa73('0x50')]=integrations[_0xaa73('0x51')](_0x316229[_0xaa73('0x47')][_0xaa73('0x52')],_0x316229[_0xaa73('0x47')][_0xaa73('0x2f')]);_0x316229[_0xaa73('0x47')]['Descriptions']=integrations[_0xaa73('0x53')](_0x316229[_0xaa73('0x47')][_0xaa73('0x52')],_0x316229[_0xaa73('0x47')][_0xaa73('0x2f')]);return db[_0xaa73('0x4c')]['create'](_0x316229[_0xaa73('0x47')],{'include':[{'model':db[_0xaa73('0x54')],'as':_0xaa73('0x50')},{'model':db[_0xaa73('0x54')],'as':_0xaa73('0x55')}]});}return null;})['then'](respondWithResult(_0x32bd0,null))[_0xaa73('0x43')](handleError(_0x32bd0,null));};exports[_0xaa73('0x56')]=function(_0x120a32,_0x5b28e2,_0x5b419f){var _0x459e52=[{'name':_0xaa73('0x57'),'label':'priority','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 _0x1ea3d6='';return db[_0xaa73('0x2c')][_0xaa73('0x4b')]({'where':{'id':_0x120a32['params']['id']},'attributes':['id',_0xaa73('0x58'),_0xaa73('0x59'),'username',_0xaa73('0x5a'),'consumerKey',_0xaa73('0x5b'),_0xaa73('0x5c'),_0xaa73('0x5d')]})[_0xaa73('0x23')](handleEntityNotFound(_0x5b28e2,null))['then'](function(_0x1e3786){if(_0x1e3786){_0x1ea3d6=_0x1e3786[_0xaa73('0x58')];var _0x40bd42=_0x1ea3d6[_0xaa73('0x5e')](-0x1);if(_0x40bd42==='/'){_0x1ea3d6=_0x1ea3d6[_0xaa73('0x5f')](0x0,_0x1ea3d6[_0xaa73('0x60')](_0x40bd42));}var _0x272b2a={'method':_0xaa73('0x61'),'uri':util[_0xaa73('0x62')]('%s/custom_fields',_0x1ea3d6),'headers':{'Content-Type':_0xaa73('0x63'),'Accept':_0xaa73('0x63')},'json':!![]};if(_0x1e3786[_0xaa73('0x59')]===_0xaa73('0x64')){_0x272b2a[_0xaa73('0x65')][_0xaa73('0x66')]=util[_0xaa73('0x62')](_0xaa73('0x67'),new Buffer(util[_0xaa73('0x62')](_0xaa73('0x68'),_0x1e3786[_0xaa73('0x69')],_0x1e3786['password']))['toString'](_0xaa73('0x6a')));}return rp(_0x272b2a)[_0xaa73('0x23')](function(_0x6ca875){return _0x459e52[_0xaa73('0x6b')](_[_0xaa73('0x2b')](_0x6ca875[_0xaa73('0x6c')]['entries'],function(_0x584366){return{'id':_0x584366[_0xaa73('0x28')],'name':_0x584366[_0xaa73('0x28')],'type':_0x584366[_0xaa73('0x2f')],'active':_0x584366['active'],'label':_0x584366['label'],'custom':!![]};}));});}})[_0xaa73('0x23')](function(_0x5c3867){return{'count':_0x5c3867[_0xaa73('0x37')],'rows':_0x5c3867};})[_0xaa73('0x23')](respondWithResult(_0x5b28e2,null))[_0xaa73('0x43')](function(_0xd71c08){var _0x6ae11=_0x120a32[_0xaa73('0x32')]['test']?0x1f4:_0xd71c08[_0xaa73('0x6d')]||0x1f4;logger[_0xaa73('0x26')](_0xaa73('0x6e'),_0xaa73('0x56'),_0x6ae11,JSON[_0xaa73('0x6f')](_0xd71c08));delete _0xd71c08[_0xaa73('0x28')];if(_0x6ae11===0x191){_0x6ae11=0x190;}_0x5b28e2[_0xaa73('0x18')](_0x6ae11)['send'](_0x120a32[_0xaa73('0x32')][_0xaa73('0x70')]?{'message':'Wrong\x20credentials','statusCode':_0xd71c08[_0xaa73('0x6d')]}:_0xd71c08);});};