95bf57b0bc11a9b4afa6b9f6c47f0985199af96b
[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 _0x713e=['util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','jayson/promise','client','info','DeskAccount,\x20%s,\x20%s','request\x20sent','debug','DeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','sendStatus','status','end','json','count','offset','limit','set','reject','save','update','then','destroy','stack','name','send','index','map','rawAttributes','fieldName','model','keys','filters','query','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','filter','options','DeskAccount','includeAll','include','rows','show','params','create','body','find','getConfigurations','findOne','addConfiguration','AccountId','Subjects','getSubjects','channel','type','Descriptions','getDescriptions','DeskConfiguration','DeskField','getFields','priority','remoteUri','authType','username','password','consumerKey','consumerSecret','token','tokenSecret','slice','substring','GET','%s/custom_fields','application/json','basic','headers','Authorization','Basic\x20%s','format','%s:%s','toString','concat','entries','label','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment'];(function(_0x432fca,_0xb0b1b5){var _0x3adba4=function(_0x5e3ae4){while(--_0x5e3ae4){_0x432fca['push'](_0x432fca['shift']());}};_0x3adba4(++_0xb0b1b5);}(_0x713e,0x78));var _0xe713=function(_0x17632f,_0x242f62){_0x17632f=_0x17632f-0x0;var _0x10e18d=_0x713e[_0x17632f];return _0x10e18d;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xe713('0x0'));var rimraf=require(_0xe713('0x1'));var zipdir=require(_0xe713('0x2'));var jsonpatch=require(_0xe713('0x3'));var rp=require(_0xe713('0x4'));var moment=require(_0xe713('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xe713('0x6'));var path=require(_0xe713('0x7'));var sox=require(_0xe713('0x8'));var csv=require(_0xe713('0x9'));var ejs=require(_0xe713('0xa'));var fs=require('fs');var _=require(_0xe713('0xb'));var squel=require(_0xe713('0xc'));var crypto=require(_0xe713('0xd'));var jsforce=require(_0xe713('0xe'));var deskjs=require(_0xe713('0xf'));var toCsv=require('to-csv');var querystring=require(_0xe713('0x10'));var Papa=require(_0xe713('0x11'));var Redis=require('ioredis');var authService=require(_0xe713('0x12'));var qs=require(_0xe713('0x13'));var as=require(_0xe713('0x14'));var hardwareService=require(_0xe713('0x15'));var logger=require(_0xe713('0x16'))(_0xe713('0x17'));var utils=require(_0xe713('0x18'));var config=require(_0xe713('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0xe713('0x1a'))['db'];var integrations=require('../../components/integrations/configuration');var jayson=require(_0xe713('0x1b'));var client=jayson[_0xe713('0x1c')]['http']({'port':0x232a});function respondWithRpcPromise(_0x19fc87,_0x3e5b97,_0x200c22,_0x2b8ab8){return new BPromise(function(_0x296db4,_0x538cd8){var _0x31dc0a=_0x2b8ab8||client;return _0x31dc0a['request'](_0x19fc87,_0x200c22)['then'](function(_0x304ec8){logger[_0xe713('0x1d')](_0xe713('0x1e'),_0x3e5b97,_0xe713('0x1f'));logger[_0xe713('0x20')](_0xe713('0x21'),_0x3e5b97,_0xe713('0x1f'),JSON[_0xe713('0x22')](_0x304ec8));if(_0x304ec8[_0xe713('0x23')]){if(_0x304ec8['error']['code']===0x1f4){logger[_0xe713('0x23')]('DeskAccount,\x20%s,\x20%s',_0x3e5b97,_0x304ec8['error']['message']);return _0x538cd8(_0x304ec8[_0xe713('0x23')]['message']);}logger[_0xe713('0x23')](_0xe713('0x1e'),_0x3e5b97,_0x304ec8['error'][_0xe713('0x24')]);return _0x296db4(_0x304ec8['error'][_0xe713('0x24')]);}else{logger[_0xe713('0x1d')](_0xe713('0x1e'),_0x3e5b97,_0xe713('0x1f'));_0x296db4(_0x304ec8[_0xe713('0x25')]['message']);}})[_0xe713('0x26')](function(_0x127602){logger[_0xe713('0x23')](_0xe713('0x1e'),_0x3e5b97,_0x127602);_0x538cd8(_0x127602);});});}function respondWithStatusCode(_0x2c7b66,_0x17f8b5){_0x17f8b5=_0x17f8b5||0xcc;return function(_0xf77979){if(_0xf77979){return _0x2c7b66[_0xe713('0x27')](_0x17f8b5);}return _0x2c7b66[_0xe713('0x28')](_0x17f8b5)[_0xe713('0x29')]();};}function respondWithResult(_0x266acf,_0x2ddc8f){_0x2ddc8f=_0x2ddc8f||0xc8;return function(_0x334302){if(_0x334302){return _0x266acf[_0xe713('0x28')](_0x2ddc8f)[_0xe713('0x2a')](_0x334302);}};}function respondWithFilteredResult(_0x4cbbcb,_0x5b7c85){return function(_0x1bdd76){if(_0x1bdd76){var _0x4fc81a=_0x1bdd76[_0xe713('0x2b')],_0x3a9228=_0x5b7c85[_0xe713('0x2c')],_0x274167=_0x5b7c85['offset']+_0x5b7c85[_0xe713('0x2d')],_0x4a9ea9;if(_0x274167>=_0x4fc81a){_0x274167=_0x4fc81a;_0x4a9ea9=0xc8;}else{_0x4a9ea9=0xce;}_0x4cbbcb[_0xe713('0x28')](_0x4a9ea9);return _0x4cbbcb[_0xe713('0x2e')]('Content-Range',_0x3a9228+'-'+_0x274167+'/'+_0x4fc81a)[_0xe713('0x2a')](_0x1bdd76);}return null;};}function patchUpdates(_0x14b6b1){return function(_0x13ca5f){try{jsonpatch['apply'](_0x13ca5f,_0x14b6b1,!![]);}catch(_0xd698e6){return BPromise[_0xe713('0x2f')](_0xd698e6);}return _0x13ca5f[_0xe713('0x30')]();};}function saveUpdates(_0x29b3ec,_0x11fef0){return function(_0x563e6e){if(_0x563e6e){return _0x563e6e[_0xe713('0x31')](_0x29b3ec)[_0xe713('0x32')](function(_0x5bb94b){return _0x5bb94b;});}return null;};}function removeEntity(_0x5de909,_0x4579cd){return function(_0x371758){if(_0x371758){return _0x371758[_0xe713('0x33')]()[_0xe713('0x32')](function(){_0x5de909[_0xe713('0x28')](0xcc)['end']();});}};}function handleEntityNotFound(_0x31b52d,_0x6b8685){return function(_0x3e9eea){if(!_0x3e9eea){_0x31b52d['sendStatus'](0x194);}return _0x3e9eea;};}function handleError(_0x2e427b,_0x5197bb){_0x5197bb=_0x5197bb||0x1f4;return function(_0x15eca0){logger[_0xe713('0x23')](_0x15eca0[_0xe713('0x34')]);if(_0x15eca0[_0xe713('0x35')]){delete _0x15eca0[_0xe713('0x35')];}_0x2e427b['status'](_0x5197bb)[_0xe713('0x36')](_0x15eca0);};}exports[_0xe713('0x37')]=function(_0x38dfaa,_0x4fc07b){var _0x246a23={},_0x2898be={},_0xf484d2={'count':0x0,'rows':[]};var _0x32f857=_[_0xe713('0x38')](db['DeskAccount'][_0xe713('0x39')],function(_0x511422){return{'name':_0x511422[_0xe713('0x3a')],'type':_0x511422['type']['key']};});_0x2898be[_0xe713('0x3b')]=_[_0xe713('0x38')](_0x32f857,_0xe713('0x35'));_0x2898be['query']=_[_0xe713('0x3c')](_0x38dfaa['query']);_0x2898be[_0xe713('0x3d')]=_['intersection'](_0x2898be[_0xe713('0x3b')],_0x2898be[_0xe713('0x3e')]);_0x246a23[_0xe713('0x3f')]=_[_0xe713('0x40')](_0x2898be[_0xe713('0x3b')],qs[_0xe713('0x41')](_0x38dfaa['query'][_0xe713('0x41')]));_0x246a23['attributes']=_0x246a23['attributes'][_0xe713('0x42')]?_0x246a23[_0xe713('0x3f')]:_0x2898be[_0xe713('0x3b')];if(!_0x38dfaa[_0xe713('0x3e')][_0xe713('0x43')](_0xe713('0x44'))){_0x246a23['limit']=qs[_0xe713('0x2d')](_0x38dfaa[_0xe713('0x3e')]['limit']);_0x246a23[_0xe713('0x2c')]=qs[_0xe713('0x2c')](_0x38dfaa[_0xe713('0x3e')][_0xe713('0x2c')]);}_0x246a23[_0xe713('0x45')]=qs[_0xe713('0x46')](_0x38dfaa[_0xe713('0x3e')][_0xe713('0x46')]);_0x246a23[_0xe713('0x47')]=qs[_0xe713('0x3d')](_[_0xe713('0x48')](_0x38dfaa[_0xe713('0x3e')],_0x2898be[_0xe713('0x3d')]),_0x32f857);if(_0x38dfaa[_0xe713('0x3e')]['filter']){_0x246a23[_0xe713('0x47')]=_[_0xe713('0x49')](_0x246a23[_0xe713('0x47')],{'$or':_['map'](_0x32f857,function(_0x273a07){if(_0x273a07['type']!=='VIRTUAL'){var _0x405f80={};_0x405f80[_0x273a07[_0xe713('0x35')]]={'$like':'%'+_0x38dfaa[_0xe713('0x3e')][_0xe713('0x4a')]+'%'};return _0x405f80;}})});}_0x246a23=_[_0xe713('0x49')]({},_0x246a23,_0x38dfaa[_0xe713('0x4b')]);var _0x73b56a={'where':_0x246a23[_0xe713('0x47')]};return db[_0xe713('0x4c')][_0xe713('0x2b')](_0x73b56a)[_0xe713('0x32')](function(_0x4efc8c){_0xf484d2['count']=_0x4efc8c;if(_0x38dfaa[_0xe713('0x3e')][_0xe713('0x4d')]){_0x246a23[_0xe713('0x4e')]=[{'all':!![]}];}return db[_0xe713('0x4c')]['findAll'](_0x246a23);})[_0xe713('0x32')](function(_0x3fd81a){_0xf484d2[_0xe713('0x4f')]=_0x3fd81a;return _0xf484d2;})[_0xe713('0x32')](respondWithFilteredResult(_0x4fc07b,_0x246a23))['catch'](handleError(_0x4fc07b,null));};exports[_0xe713('0x50')]=function(_0x19500f,_0x44dd28){var _0x53c81e={'raw':![],'where':{'id':_0x19500f[_0xe713('0x51')]['id']}},_0x26ae8a={};_0x26ae8a['model']=_[_0xe713('0x3c')](db[_0xe713('0x4c')]['rawAttributes']);_0x26ae8a[_0xe713('0x3e')]=_[_0xe713('0x3c')](_0x19500f[_0xe713('0x3e')]);_0x26ae8a[_0xe713('0x3d')]=_['intersection'](_0x26ae8a['model'],_0x26ae8a[_0xe713('0x3e')]);_0x53c81e[_0xe713('0x3f')]=_[_0xe713('0x40')](_0x26ae8a[_0xe713('0x3b')],qs[_0xe713('0x41')](_0x19500f[_0xe713('0x3e')][_0xe713('0x41')]));_0x53c81e['attributes']=_0x53c81e['attributes'][_0xe713('0x42')]?_0x53c81e[_0xe713('0x3f')]:_0x26ae8a[_0xe713('0x3b')];if(_0x19500f[_0xe713('0x3e')][_0xe713('0x4d')]){_0x53c81e['include']=[{'all':!![]}];}_0x53c81e=_['merge']({},_0x53c81e,_0x19500f['options']);return db[_0xe713('0x4c')]['find'](_0x53c81e)[_0xe713('0x32')](handleEntityNotFound(_0x44dd28,null))[_0xe713('0x32')](respondWithResult(_0x44dd28,null))['catch'](handleError(_0x44dd28,null));};exports[_0xe713('0x52')]=function(_0x22797f,_0x2f007b){return db[_0xe713('0x4c')][_0xe713('0x52')](_0x22797f[_0xe713('0x53')],{})[_0xe713('0x32')](respondWithResult(_0x2f007b,0xc9))[_0xe713('0x26')](handleError(_0x2f007b,null));};exports['update']=function(_0x4686a7,_0x512dc4){if(_0x4686a7[_0xe713('0x53')]['id']){delete _0x4686a7[_0xe713('0x53')]['id'];}return db['DeskAccount']['find']({'where':{'id':_0x4686a7[_0xe713('0x51')]['id']}})['then'](handleEntityNotFound(_0x512dc4,null))['then'](saveUpdates(_0x4686a7[_0xe713('0x53')],null))['then'](respondWithResult(_0x512dc4,null))[_0xe713('0x26')](handleError(_0x512dc4,null));};exports['destroy']=function(_0x3c4e6e,_0x53eb35){return db[_0xe713('0x4c')][_0xe713('0x54')]({'where':{'id':_0x3c4e6e[_0xe713('0x51')]['id']}})['then'](handleEntityNotFound(_0x53eb35,null))[_0xe713('0x32')](removeEntity(_0x53eb35,null))[_0xe713('0x26')](handleError(_0x53eb35,null));};exports[_0xe713('0x55')]=function(_0x4c656f,_0x3c7e60,_0x42a427){var _0x45b26a={};var _0x2fbe40={};var _0x4b4818;var _0x3ee3c7;return db[_0xe713('0x4c')][_0xe713('0x56')]({'where':{'id':_0x4c656f[_0xe713('0x51')]['id']}})[_0xe713('0x32')](handleEntityNotFound(_0x3c7e60,null))[_0xe713('0x32')](function(_0x2276eb){if(_0x2276eb){_0x4b4818=_0x2276eb;_0x2fbe40['model']=_['keys'](db['DeskConfiguration'][_0xe713('0x39')]);_0x2fbe40[_0xe713('0x3e')]=_['keys'](_0x4c656f[_0xe713('0x3e')]);_0x2fbe40[_0xe713('0x3d')]=_[_0xe713('0x40')](_0x2fbe40[_0xe713('0x3b')],_0x2fbe40[_0xe713('0x3e')]);_0x45b26a[_0xe713('0x3f')]=_[_0xe713('0x40')](_0x2fbe40['model'],qs[_0xe713('0x41')](_0x4c656f['query']['fields']));_0x45b26a['attributes']=_0x45b26a['attributes'][_0xe713('0x42')]?_0x45b26a[_0xe713('0x3f')]:_0x2fbe40[_0xe713('0x3b')];_0x45b26a[_0xe713('0x45')]=qs[_0xe713('0x46')](_0x4c656f[_0xe713('0x3e')]['sort']);_0x45b26a[_0xe713('0x47')]=qs[_0xe713('0x3d')](_[_0xe713('0x48')](_0x4c656f['query'],_0x2fbe40[_0xe713('0x3d')]));if(_0x4c656f['query']['filter']){_0x45b26a['where']=_[_0xe713('0x49')](_0x45b26a[_0xe713('0x47')],{'$or':_[_0xe713('0x38')](_0x45b26a[_0xe713('0x3f')],function(_0x5ac382){var _0x53b702={};_0x53b702[_0x5ac382]={'$like':'%'+_0x4c656f[_0xe713('0x3e')][_0xe713('0x4a')]+'%'};return _0x53b702;})});}_0x45b26a=_[_0xe713('0x49')]({},_0x45b26a,_0x4c656f[_0xe713('0x4b')]);return _0x4b4818[_0xe713('0x55')](_0x45b26a);}})[_0xe713('0x32')](function(_0x51765d){if(_0x51765d){_0x3ee3c7=_0x51765d[_0xe713('0x42')];if(!_0x4c656f[_0xe713('0x3e')][_0xe713('0x43')](_0xe713('0x44'))){_0x45b26a[_0xe713('0x2d')]=qs[_0xe713('0x2d')](_0x4c656f['query'][_0xe713('0x2d')]);_0x45b26a[_0xe713('0x2c')]=qs[_0xe713('0x2c')](_0x4c656f['query'][_0xe713('0x2c')]);}return _0x4b4818[_0xe713('0x55')](_0x45b26a);}})[_0xe713('0x32')](function(_0x2b3c4b){if(_0x2b3c4b){return _0x2b3c4b?{'count':_0x3ee3c7,'rows':_0x2b3c4b}:null;}})[_0xe713('0x32')](respondWithResult(_0x3c7e60,null))[_0xe713('0x26')](handleError(_0x3c7e60,null));};exports[_0xe713('0x57')]=function(_0x25176b,_0x5b1bcd,_0x4d7ab8){if(_0x25176b[_0xe713('0x53')]['id']){delete _0x25176b['body']['id'];}return db[_0xe713('0x4c')][_0xe713('0x56')]({'where':{'id':_0x25176b['params']['id']}})['then'](handleEntityNotFound(_0x5b1bcd,null))[_0xe713('0x32')](function(_0x28003c){if(_0x28003c){_0x25176b[_0xe713('0x53')][_0xe713('0x58')]=_0x28003c['id'];_0x25176b[_0xe713('0x53')][_0xe713('0x59')]=integrations[_0xe713('0x5a')](_0x25176b[_0xe713('0x53')][_0xe713('0x5b')],_0x25176b[_0xe713('0x53')][_0xe713('0x5c')]);_0x25176b[_0xe713('0x53')][_0xe713('0x5d')]=integrations[_0xe713('0x5e')](_0x25176b[_0xe713('0x53')][_0xe713('0x5b')],_0x25176b[_0xe713('0x53')]['type']);return db[_0xe713('0x5f')][_0xe713('0x52')](_0x25176b[_0xe713('0x53')],{'include':[{'model':db[_0xe713('0x60')],'as':_0xe713('0x59')},{'model':db['DeskField'],'as':'Descriptions'}]});}return null;})[_0xe713('0x32')](respondWithResult(_0x5b1bcd,null))['catch'](handleError(_0x5b1bcd,null));};exports[_0xe713('0x61')]=function(_0x587b90,_0x14aed6,_0x4602f3){var _0x9241cd=[{'name':'priority','label':_0xe713('0x62'),'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 _0x422e45='';return db[_0xe713('0x4c')][_0xe713('0x56')]({'where':{'id':_0x587b90['params']['id']},'attributes':['id',_0xe713('0x63'),_0xe713('0x64'),_0xe713('0x65'),_0xe713('0x66'),_0xe713('0x67'),_0xe713('0x68'),_0xe713('0x69'),_0xe713('0x6a')]})[_0xe713('0x32')](handleEntityNotFound(_0x14aed6,null))[_0xe713('0x32')](function(_0x207bb5){if(_0x207bb5){_0x422e45=_0x207bb5[_0xe713('0x63')];var _0x3f2391=_0x422e45[_0xe713('0x6b')](-0x1);if(_0x3f2391==='/'){_0x422e45=_0x422e45[_0xe713('0x6c')](0x0,_0x422e45['lastIndexOf'](_0x3f2391));}var _0x568122={'method':_0xe713('0x6d'),'uri':util['format'](_0xe713('0x6e'),_0x422e45),'headers':{'Content-Type':_0xe713('0x6f'),'Accept':_0xe713('0x6f')},'json':!![]};if(_0x207bb5[_0xe713('0x64')]===_0xe713('0x70')){_0x568122[_0xe713('0x71')][_0xe713('0x72')]=util['format'](_0xe713('0x73'),new Buffer(util[_0xe713('0x74')](_0xe713('0x75'),_0x207bb5['username'],_0x207bb5[_0xe713('0x66')]))[_0xe713('0x76')]('base64'));}return rp(_0x568122)['then'](function(_0x53e5d6){return _0x9241cd[_0xe713('0x77')](_[_0xe713('0x38')](_0x53e5d6['_embedded'][_0xe713('0x78')],function(_0x2ba975){return{'id':_0x2ba975[_0xe713('0x35')],'name':_0x2ba975[_0xe713('0x35')],'type':_0x2ba975[_0xe713('0x5c')],'active':_0x2ba975['active'],'label':_0x2ba975[_0xe713('0x79')],'custom':!![]};}));});}})['then'](function(_0x5680af){return{'count':_0x5680af[_0xe713('0x42')],'rows':_0x5680af};})[_0xe713('0x32')](respondWithResult(_0x14aed6,null))[_0xe713('0x26')](function(_0x53a4d5){var _0x265ac3=_0x587b90[_0xe713('0x3e')][_0xe713('0x7a')]?0x1f4:_0x53a4d5[_0xe713('0x7b')]||0x1f4;logger[_0xe713('0x23')](_0xe713('0x7c'),_0xe713('0x61'),_0x265ac3,JSON['stringify'](_0x53a4d5));delete _0x53a4d5['name'];if(_0x265ac3===0x191){_0x265ac3=0x190;}_0x14aed6['status'](_0x265ac3)['send'](_0x587b90[_0xe713('0x3e')][_0xe713('0x7a')]?{'message':_0xe713('0x7d'),'statusCode':_0x53a4d5[_0xe713('0x7b')]}:_0x53a4d5);});};