Built motion from commit (unavailable).|2.5.14
[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 _0xa339=['query','keys','filters','intersection','attributes','fields','hasOwnProperty','order','sort','where','VIRTUAL','filter','merge','DeskAccount','count','includeAll','length','include','options','find','create','body','params','destroy','getConfigurations','findOne','nolimit','addConfiguration','AccountId','Subjects','channel','type','getDescriptions','DeskConfiguration','DeskField','getFields','priority','remoteUri','password','consumerKey','slice','format','%s/custom_fields','application/json','authType','basic','Authorization','Basic\x20%s','toString','concat','_embedded','label','test','statusCode','Wrong\x20credentials','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','lodash','squel','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','info','DeskAccount,\x20%s,\x20%s','request\x20sent','debug','DeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','status','end','offset','limit','set','Content-Range','json','apply','reject','save','update','then','name','send','map','rawAttributes','fieldName','model'];(function(_0x212348,_0x55415c){var _0x1696e9=function(_0x2b87cb){while(--_0x2b87cb){_0x212348['push'](_0x212348['shift']());}};_0x1696e9(++_0x55415c);}(_0xa339,0x113));var _0x9a33=function(_0xc3ee64,_0x12dc6c){_0xc3ee64=_0xc3ee64-0x0;var _0x444707=_0xa339[_0xc3ee64];return _0x444707;};'use strict';var pdf=require(_0x9a33('0x0'));var emlformat=require(_0x9a33('0x1'));var rimraf=require(_0x9a33('0x2'));var zipdir=require(_0x9a33('0x3'));var jsonpatch=require(_0x9a33('0x4'));var rp=require('request-promise');var moment=require(_0x9a33('0x5'));var BPromise=require(_0x9a33('0x6'));var Mustache=require(_0x9a33('0x7'));var util=require('util');var path=require(_0x9a33('0x8'));var sox=require(_0x9a33('0x9'));var csv=require(_0x9a33('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x9a33('0xb'));var squel=require(_0x9a33('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x9a33('0xd'));var toCsv=require(_0x9a33('0xa'));var querystring=require('querystring');var Papa=require(_0x9a33('0xe'));var Redis=require(_0x9a33('0xf'));var authService=require(_0x9a33('0x10'));var qs=require(_0x9a33('0x11'));var as=require(_0x9a33('0x12'));var hardwareService=require(_0x9a33('0x13'));var logger=require('../../config/logger')(_0x9a33('0x14'));var utils=require('../../config/utils');var config=require(_0x9a33('0x15'));var licenseUtil=require(_0x9a33('0x16'));var db=require(_0x9a33('0x17'))['db'];var integrations=require(_0x9a33('0x18'));var jayson=require(_0x9a33('0x19'));var client=jayson[_0x9a33('0x1a')]['http']({'port':0x232a});function respondWithRpcPromise(_0x569ae6,_0x35cbd6,_0x9e3bfc,_0x349727){return new BPromise(function(_0x155911,_0x563fa4){var _0x31c19d=_0x349727||client;return _0x31c19d['request'](_0x569ae6,_0x9e3bfc)['then'](function(_0x58d369){logger[_0x9a33('0x1b')](_0x9a33('0x1c'),_0x35cbd6,_0x9a33('0x1d'));logger[_0x9a33('0x1e')](_0x9a33('0x1f'),_0x35cbd6,_0x9a33('0x1d'),JSON[_0x9a33('0x20')](_0x58d369));if(_0x58d369[_0x9a33('0x21')]){if(_0x58d369[_0x9a33('0x21')][_0x9a33('0x22')]===0x1f4){logger[_0x9a33('0x21')](_0x9a33('0x1c'),_0x35cbd6,_0x58d369[_0x9a33('0x21')][_0x9a33('0x23')]);return _0x563fa4(_0x58d369[_0x9a33('0x21')]['message']);}logger['error'](_0x9a33('0x1c'),_0x35cbd6,_0x58d369[_0x9a33('0x21')]['message']);return _0x155911(_0x58d369[_0x9a33('0x21')]['message']);}else{logger[_0x9a33('0x1b')](_0x9a33('0x1c'),_0x35cbd6,_0x9a33('0x1d'));_0x155911(_0x58d369['result'][_0x9a33('0x23')]);}})[_0x9a33('0x24')](function(_0x5af2f4){logger[_0x9a33('0x21')](_0x9a33('0x1c'),_0x35cbd6,_0x5af2f4);_0x563fa4(_0x5af2f4);});});}function respondWithStatusCode(_0x71c783,_0x4e9dc3){_0x4e9dc3=_0x4e9dc3||0xcc;return function(_0x3e2f6d){if(_0x3e2f6d){return _0x71c783['sendStatus'](_0x4e9dc3);}return _0x71c783[_0x9a33('0x25')](_0x4e9dc3)[_0x9a33('0x26')]();};}function respondWithResult(_0x31e5a9,_0xb951b){_0xb951b=_0xb951b||0xc8;return function(_0x3408fd){if(_0x3408fd){return _0x31e5a9[_0x9a33('0x25')](_0xb951b)['json'](_0x3408fd);}};}function respondWithFilteredResult(_0x1594f1,_0x437946){return function(_0x31f63b){if(_0x31f63b){var _0x324d6e=_0x31f63b['count'],_0x225758=_0x437946[_0x9a33('0x27')],_0x1bb251=_0x437946[_0x9a33('0x27')]+_0x437946[_0x9a33('0x28')],_0x5d1ff1;if(_0x1bb251>=_0x324d6e){_0x1bb251=_0x324d6e;_0x5d1ff1=0xc8;}else{_0x5d1ff1=0xce;}_0x1594f1['status'](_0x5d1ff1);return _0x1594f1[_0x9a33('0x29')](_0x9a33('0x2a'),_0x225758+'-'+_0x1bb251+'/'+_0x324d6e)[_0x9a33('0x2b')](_0x31f63b);}return null;};}function patchUpdates(_0x547c8e){return function(_0x5a84c4){try{jsonpatch[_0x9a33('0x2c')](_0x5a84c4,_0x547c8e,!![]);}catch(_0x2140f6){return BPromise[_0x9a33('0x2d')](_0x2140f6);}return _0x5a84c4[_0x9a33('0x2e')]();};}function saveUpdates(_0x573c3c,_0x5ceb37){return function(_0x5b70b1){if(_0x5b70b1){return _0x5b70b1[_0x9a33('0x2f')](_0x573c3c)[_0x9a33('0x30')](function(_0x18c6bc){return _0x18c6bc;});}return null;};}function removeEntity(_0x14c11c,_0x4043be){return function(_0x1e7896){if(_0x1e7896){return _0x1e7896['destroy']()[_0x9a33('0x30')](function(){_0x14c11c[_0x9a33('0x25')](0xcc)[_0x9a33('0x26')]();});}};}function handleEntityNotFound(_0x563e2e,_0x13eb90){return function(_0x41d306){if(!_0x41d306){_0x563e2e['sendStatus'](0x194);}return _0x41d306;};}function handleError(_0x2c8c83,_0x28cc81){_0x28cc81=_0x28cc81||0x1f4;return function(_0x13cdfe){logger[_0x9a33('0x21')](_0x13cdfe['stack']);if(_0x13cdfe[_0x9a33('0x31')]){delete _0x13cdfe[_0x9a33('0x31')];}_0x2c8c83['status'](_0x28cc81)[_0x9a33('0x32')](_0x13cdfe);};}exports['index']=function(_0x5a09a1,_0x25a878){var _0x2d6134={},_0x4bb441={},_0x5f452f={'count':0x0,'rows':[]};var _0x2924c8=_[_0x9a33('0x33')](db['DeskAccount'][_0x9a33('0x34')],function(_0x2db147){return{'name':_0x2db147[_0x9a33('0x35')],'type':_0x2db147['type']['key']};});_0x4bb441[_0x9a33('0x36')]=_[_0x9a33('0x33')](_0x2924c8,_0x9a33('0x31'));_0x4bb441[_0x9a33('0x37')]=_[_0x9a33('0x38')](_0x5a09a1[_0x9a33('0x37')]);_0x4bb441[_0x9a33('0x39')]=_[_0x9a33('0x3a')](_0x4bb441[_0x9a33('0x36')],_0x4bb441[_0x9a33('0x37')]);_0x2d6134[_0x9a33('0x3b')]=_['intersection'](_0x4bb441[_0x9a33('0x36')],qs[_0x9a33('0x3c')](_0x5a09a1['query'][_0x9a33('0x3c')]));_0x2d6134['attributes']=_0x2d6134[_0x9a33('0x3b')]['length']?_0x2d6134[_0x9a33('0x3b')]:_0x4bb441[_0x9a33('0x36')];if(!_0x5a09a1['query'][_0x9a33('0x3d')]('nolimit')){_0x2d6134['limit']=qs[_0x9a33('0x28')](_0x5a09a1[_0x9a33('0x37')][_0x9a33('0x28')]);_0x2d6134['offset']=qs[_0x9a33('0x27')](_0x5a09a1[_0x9a33('0x37')][_0x9a33('0x27')]);}_0x2d6134[_0x9a33('0x3e')]=qs[_0x9a33('0x3f')](_0x5a09a1[_0x9a33('0x37')]['sort']);_0x2d6134['where']=qs[_0x9a33('0x39')](_['pick'](_0x5a09a1[_0x9a33('0x37')],_0x4bb441[_0x9a33('0x39')]),_0x2924c8);if(_0x5a09a1['query']['filter']){_0x2d6134[_0x9a33('0x40')]=_['merge'](_0x2d6134[_0x9a33('0x40')],{'$or':_[_0x9a33('0x33')](_0x2924c8,function(_0x546930){if(_0x546930['type']!==_0x9a33('0x41')){var _0x4b74e6={};_0x4b74e6[_0x546930['name']]={'$like':'%'+_0x5a09a1[_0x9a33('0x37')][_0x9a33('0x42')]+'%'};return _0x4b74e6;}})});}_0x2d6134=_[_0x9a33('0x43')]({},_0x2d6134,_0x5a09a1['options']);var _0x43ebac={'where':_0x2d6134[_0x9a33('0x40')]};return db[_0x9a33('0x44')][_0x9a33('0x45')](_0x43ebac)[_0x9a33('0x30')](function(_0xab022c){_0x5f452f[_0x9a33('0x45')]=_0xab022c;if(_0x5a09a1['query'][_0x9a33('0x46')]){_0x2d6134['include']=[{'all':!![]}];}return db[_0x9a33('0x44')]['findAll'](_0x2d6134);})[_0x9a33('0x30')](function(_0xd483c5){_0x5f452f['rows']=_0xd483c5;return _0x5f452f;})[_0x9a33('0x30')](respondWithFilteredResult(_0x25a878,_0x2d6134))['catch'](handleError(_0x25a878,null));};exports['show']=function(_0x104065,_0x420bc8){var _0x30f4b7={'raw':![],'where':{'id':_0x104065['params']['id']}},_0x1dc2d3={};_0x1dc2d3[_0x9a33('0x36')]=_[_0x9a33('0x38')](db[_0x9a33('0x44')][_0x9a33('0x34')]);_0x1dc2d3['query']=_[_0x9a33('0x38')](_0x104065[_0x9a33('0x37')]);_0x1dc2d3[_0x9a33('0x39')]=_['intersection'](_0x1dc2d3[_0x9a33('0x36')],_0x1dc2d3['query']);_0x30f4b7[_0x9a33('0x3b')]=_['intersection'](_0x1dc2d3[_0x9a33('0x36')],qs['fields'](_0x104065[_0x9a33('0x37')][_0x9a33('0x3c')]));_0x30f4b7[_0x9a33('0x3b')]=_0x30f4b7['attributes'][_0x9a33('0x47')]?_0x30f4b7[_0x9a33('0x3b')]:_0x1dc2d3[_0x9a33('0x36')];if(_0x104065['query']['includeAll']){_0x30f4b7[_0x9a33('0x48')]=[{'all':!![]}];}_0x30f4b7=_[_0x9a33('0x43')]({},_0x30f4b7,_0x104065[_0x9a33('0x49')]);return db[_0x9a33('0x44')][_0x9a33('0x4a')](_0x30f4b7)[_0x9a33('0x30')](handleEntityNotFound(_0x420bc8,null))['then'](respondWithResult(_0x420bc8,null))[_0x9a33('0x24')](handleError(_0x420bc8,null));};exports['create']=function(_0x4cdfeb,_0x4d816b){return db[_0x9a33('0x44')][_0x9a33('0x4b')](_0x4cdfeb[_0x9a33('0x4c')],{})['then'](respondWithResult(_0x4d816b,0xc9))[_0x9a33('0x24')](handleError(_0x4d816b,null));};exports[_0x9a33('0x2f')]=function(_0x29a22a,_0x15e5de){if(_0x29a22a[_0x9a33('0x4c')]['id']){delete _0x29a22a[_0x9a33('0x4c')]['id'];}return db[_0x9a33('0x44')][_0x9a33('0x4a')]({'where':{'id':_0x29a22a[_0x9a33('0x4d')]['id']}})[_0x9a33('0x30')](handleEntityNotFound(_0x15e5de,null))['then'](saveUpdates(_0x29a22a[_0x9a33('0x4c')],null))[_0x9a33('0x30')](respondWithResult(_0x15e5de,null))[_0x9a33('0x24')](handleError(_0x15e5de,null));};exports[_0x9a33('0x4e')]=function(_0x43f053,_0x45462e){return db['DeskAccount'][_0x9a33('0x4a')]({'where':{'id':_0x43f053[_0x9a33('0x4d')]['id']}})['then'](handleEntityNotFound(_0x45462e,null))[_0x9a33('0x30')](removeEntity(_0x45462e,null))[_0x9a33('0x24')](handleError(_0x45462e,null));};exports[_0x9a33('0x4f')]=function(_0x313270,_0x476eae,_0x2ebdb3){var _0x2c8561={};var _0x5b7a4d={};var _0x11e0e3;var _0x45f4d1;return db['DeskAccount'][_0x9a33('0x50')]({'where':{'id':_0x313270['params']['id']}})[_0x9a33('0x30')](handleEntityNotFound(_0x476eae,null))['then'](function(_0x11e918){if(_0x11e918){_0x11e0e3=_0x11e918;_0x5b7a4d['model']=_[_0x9a33('0x38')](db['DeskConfiguration'][_0x9a33('0x34')]);_0x5b7a4d[_0x9a33('0x37')]=_[_0x9a33('0x38')](_0x313270[_0x9a33('0x37')]);_0x5b7a4d[_0x9a33('0x39')]=_[_0x9a33('0x3a')](_0x5b7a4d[_0x9a33('0x36')],_0x5b7a4d[_0x9a33('0x37')]);_0x2c8561[_0x9a33('0x3b')]=_[_0x9a33('0x3a')](_0x5b7a4d[_0x9a33('0x36')],qs[_0x9a33('0x3c')](_0x313270[_0x9a33('0x37')][_0x9a33('0x3c')]));_0x2c8561[_0x9a33('0x3b')]=_0x2c8561['attributes'][_0x9a33('0x47')]?_0x2c8561['attributes']:_0x5b7a4d['model'];_0x2c8561[_0x9a33('0x3e')]=qs[_0x9a33('0x3f')](_0x313270[_0x9a33('0x37')]['sort']);_0x2c8561['where']=qs[_0x9a33('0x39')](_['pick'](_0x313270[_0x9a33('0x37')],_0x5b7a4d[_0x9a33('0x39')]));if(_0x313270[_0x9a33('0x37')][_0x9a33('0x42')]){_0x2c8561[_0x9a33('0x40')]=_[_0x9a33('0x43')](_0x2c8561[_0x9a33('0x40')],{'$or':_[_0x9a33('0x33')](_0x2c8561[_0x9a33('0x3b')],function(_0x73a13c){var _0x100391={};_0x100391[_0x73a13c]={'$like':'%'+_0x313270[_0x9a33('0x37')][_0x9a33('0x42')]+'%'};return _0x100391;})});}_0x2c8561=_[_0x9a33('0x43')]({},_0x2c8561,_0x313270[_0x9a33('0x49')]);return _0x11e0e3['getConfigurations'](_0x2c8561);}})['then'](function(_0x5af947){if(_0x5af947){_0x45f4d1=_0x5af947['length'];if(!_0x313270[_0x9a33('0x37')][_0x9a33('0x3d')](_0x9a33('0x51'))){_0x2c8561[_0x9a33('0x28')]=qs[_0x9a33('0x28')](_0x313270[_0x9a33('0x37')]['limit']);_0x2c8561[_0x9a33('0x27')]=qs['offset'](_0x313270[_0x9a33('0x37')][_0x9a33('0x27')]);}return _0x11e0e3[_0x9a33('0x4f')](_0x2c8561);}})['then'](function(_0x4a92cb){if(_0x4a92cb){return _0x4a92cb?{'count':_0x45f4d1,'rows':_0x4a92cb}:null;}})[_0x9a33('0x30')](respondWithResult(_0x476eae,null))[_0x9a33('0x24')](handleError(_0x476eae,null));};exports[_0x9a33('0x52')]=function(_0xf1270f,_0x646a01,_0x43741e){if(_0xf1270f[_0x9a33('0x4c')]['id']){delete _0xf1270f[_0x9a33('0x4c')]['id'];}return db['DeskAccount'][_0x9a33('0x50')]({'where':{'id':_0xf1270f['params']['id']}})[_0x9a33('0x30')](handleEntityNotFound(_0x646a01,null))[_0x9a33('0x30')](function(_0x8abd3d){if(_0x8abd3d){_0xf1270f[_0x9a33('0x4c')][_0x9a33('0x53')]=_0x8abd3d['id'];_0xf1270f[_0x9a33('0x4c')][_0x9a33('0x54')]=integrations['getSubjects'](_0xf1270f[_0x9a33('0x4c')][_0x9a33('0x55')],_0xf1270f[_0x9a33('0x4c')][_0x9a33('0x56')]);_0xf1270f['body']['Descriptions']=integrations[_0x9a33('0x57')](_0xf1270f[_0x9a33('0x4c')]['channel'],_0xf1270f[_0x9a33('0x4c')][_0x9a33('0x56')]);return db[_0x9a33('0x58')][_0x9a33('0x4b')](_0xf1270f['body'],{'include':[{'model':db[_0x9a33('0x59')],'as':_0x9a33('0x54')},{'model':db[_0x9a33('0x59')],'as':'Descriptions'}]});}return null;})[_0x9a33('0x30')](respondWithResult(_0x646a01,null))['catch'](handleError(_0x646a01,null));};exports[_0x9a33('0x5a')]=function(_0x330830,_0x347e71,_0x4f0ce3){var _0x2039a4=[{'name':_0x9a33('0x5b'),'label':_0x9a33('0x5b'),'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 _0x4a8a07='';return db['DeskAccount']['findOne']({'where':{'id':_0x330830[_0x9a33('0x4d')]['id']},'attributes':['id',_0x9a33('0x5c'),'authType','username',_0x9a33('0x5d'),_0x9a33('0x5e'),'consumerSecret','token','tokenSecret']})[_0x9a33('0x30')](handleEntityNotFound(_0x347e71,null))[_0x9a33('0x30')](function(_0x3c9c4a){if(_0x3c9c4a){_0x4a8a07=_0x3c9c4a[_0x9a33('0x5c')];var _0x1af640=_0x4a8a07[_0x9a33('0x5f')](-0x1);if(_0x1af640==='/'){_0x4a8a07=_0x4a8a07['substring'](0x0,_0x4a8a07['lastIndexOf'](_0x1af640));}var _0xce0f84={'method':'GET','uri':util[_0x9a33('0x60')](_0x9a33('0x61'),_0x4a8a07),'headers':{'Content-Type':'application/json','Accept':_0x9a33('0x62')},'json':!![]};if(_0x3c9c4a[_0x9a33('0x63')]===_0x9a33('0x64')){_0xce0f84['headers'][_0x9a33('0x65')]=util['format'](_0x9a33('0x66'),new Buffer(util['format']('%s:%s',_0x3c9c4a['username'],_0x3c9c4a['password']))[_0x9a33('0x67')]('base64'));}return rp(_0xce0f84)[_0x9a33('0x30')](function(_0x5da89a){return _0x2039a4[_0x9a33('0x68')](_[_0x9a33('0x33')](_0x5da89a[_0x9a33('0x69')]['entries'],function(_0x587075){return{'id':_0x587075[_0x9a33('0x31')],'name':_0x587075['name'],'type':_0x587075[_0x9a33('0x56')],'active':_0x587075['active'],'label':_0x587075[_0x9a33('0x6a')],'custom':!![]};}));});}})[_0x9a33('0x30')](function(_0x2ba4d0){return{'count':_0x2ba4d0[_0x9a33('0x47')],'rows':_0x2ba4d0};})['then'](respondWithResult(_0x347e71,null))[_0x9a33('0x24')](function(_0x971c50){var _0x283e6f=_0x330830['query'][_0x9a33('0x6b')]?0x1f4:_0x971c50[_0x9a33('0x6c')]||0x1f4;logger[_0x9a33('0x21')]('getFields,\x20%s,\x20%s,\x20%s',_0x9a33('0x5a'),_0x283e6f,JSON[_0x9a33('0x20')](_0x971c50));delete _0x971c50[_0x9a33('0x31')];if(_0x283e6f===0x191){_0x283e6f=0x190;}_0x347e71[_0x9a33('0x25')](_0x283e6f)[_0x9a33('0x32')](_0x330830['query']['test']?{'message':_0x9a33('0x6d'),'statusCode':_0x971c50['statusCode']}:_0x971c50);});};