07380fe7e17d8f7930167d58846f78ae6fab7c4f
[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 _0x7217=['tokenSecret','slice','substring','lastIndexOf','GET','%s/custom_fields','application/json','basic','headers','Authorization','format','Basic\x20%s','%s:%s','toString','base64','concat','entries','active','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','send','Wrong\x20credentials','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','info','DeskAccount,\x20%s,\x20%s','request\x20sent','debug','error','code','message','result','catch','status','end','json','limit','undefined','count','offset','Content-Range','apply','save','update','destroy','then','sendStatus','stack','name','render','merge','body','contact','agent','map','rawAttributes','type','key','query','keys','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filters','pick','filter','VIRTUAL','DeskAccount','include','findAll','show','params','includeAll','options','find','create','findOne','DeskConfiguration','order','getConfigurations','addConfiguration','AccountId','Subjects','channel','Descriptions','getDescriptions','DeskField','getFields','priority','remoteUri','authType','username','password','consumerSecret'];(function(_0x2408cc,_0x394561){var _0x22174d=function(_0x3c36de){while(--_0x3c36de){_0x2408cc['push'](_0x2408cc['shift']());}};_0x22174d(++_0x394561);}(_0x7217,0x19e));var _0x7721=function(_0x3b5250,_0x7a0b2c){_0x3b5250=_0x3b5250-0x0;var _0xc844a1=_0x7217[_0x3b5250];return _0xc844a1;};'use strict';var emlformat=require(_0x7721('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x7721('0x1'));var jsonpatch=require(_0x7721('0x2'));var rp=require(_0x7721('0x3'));var moment=require(_0x7721('0x4'));var BPromise=require(_0x7721('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0x7721('0x6'));var sox=require(_0x7721('0x7'));var csv=require(_0x7721('0x8'));var ejs=require(_0x7721('0x9'));var fs=require('fs');var fs_extra=require(_0x7721('0xa'));var _=require(_0x7721('0xb'));var squel=require(_0x7721('0xc'));var crypto=require(_0x7721('0xd'));var jsforce=require(_0x7721('0xe'));var deskjs=require(_0x7721('0xf'));var toCsv=require(_0x7721('0x8'));var querystring=require(_0x7721('0x10'));var Papa=require(_0x7721('0x11'));var Redis=require(_0x7721('0x12'));var authService=require(_0x7721('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x7721('0x14'));var hardwareService=require(_0x7721('0x15'));var logger=require(_0x7721('0x16'))(_0x7721('0x17'));var utils=require(_0x7721('0x18'));var config=require(_0x7721('0x19'));var licenseUtil=require(_0x7721('0x1a'));var db=require(_0x7721('0x1b'))['db'];var integrations=require('../../components/integrations/configuration');var jayson=require(_0x7721('0x1c'));var client=jayson[_0x7721('0x1d')]['http']({'port':0x232a});function respondWithRpcPromise(_0x109900,_0x30da54,_0x3f01c5,_0x2e9752){return new BPromise(function(_0x5069da,_0x3cbce8){var _0x25b1c0=_0x2e9752||client;return _0x25b1c0['request'](_0x109900,_0x3f01c5)['then'](function(_0x4b183e){logger[_0x7721('0x1e')](_0x7721('0x1f'),_0x30da54,_0x7721('0x20'));logger[_0x7721('0x21')]('DeskAccount,\x20%s,\x20%s,\x20%s',_0x30da54,_0x7721('0x20'),JSON['stringify'](_0x4b183e));if(_0x4b183e[_0x7721('0x22')]){if(_0x4b183e['error'][_0x7721('0x23')]===0x1f4){logger[_0x7721('0x22')](_0x7721('0x1f'),_0x30da54,_0x4b183e[_0x7721('0x22')][_0x7721('0x24')]);return _0x3cbce8(_0x4b183e[_0x7721('0x22')][_0x7721('0x24')]);}logger[_0x7721('0x22')](_0x7721('0x1f'),_0x30da54,_0x4b183e[_0x7721('0x22')]['message']);return _0x5069da(_0x4b183e[_0x7721('0x22')][_0x7721('0x24')]);}else{logger[_0x7721('0x1e')](_0x7721('0x1f'),_0x30da54,'request\x20sent');_0x5069da(_0x4b183e[_0x7721('0x25')]['message']);}})[_0x7721('0x26')](function(_0x288e3a){logger[_0x7721('0x22')](_0x7721('0x1f'),_0x30da54,_0x288e3a);_0x3cbce8(_0x288e3a);});});}function respondWithStatusCode(_0x121cc4,_0x395b15){_0x395b15=_0x395b15||0xcc;return function(_0x2c6b7b){if(_0x2c6b7b){return _0x121cc4['sendStatus'](_0x395b15);}return _0x121cc4[_0x7721('0x27')](_0x395b15)[_0x7721('0x28')]();};}function respondWithResult(_0x125564,_0x1f67c7){_0x1f67c7=_0x1f67c7||0xc8;return function(_0x40d550){if(_0x40d550){return _0x125564[_0x7721('0x27')](_0x1f67c7)[_0x7721('0x29')](_0x40d550);}};}function respondWithFilteredResult(_0xf753f1,_0x40f367){return function(_0x52316e){if(_0x52316e){var _0x258ddf=typeof _0x40f367['offset']==='undefined'&&typeof _0x40f367[_0x7721('0x2a')]===_0x7721('0x2b');var _0x53c904=_0x52316e[_0x7721('0x2c')];var _0x1ea4d=_0x258ddf?0x0:_0x40f367[_0x7721('0x2d')];var _0xd7d703=_0x258ddf?_0x52316e[_0x7721('0x2c')]:_0x40f367['offset']+_0x40f367[_0x7721('0x2a')];var _0x2871c5;if(_0xd7d703>=_0x53c904){_0xd7d703=_0x53c904;_0x2871c5=0xc8;}else{_0x2871c5=0xce;}_0xf753f1['status'](_0x2871c5);return _0xf753f1['set'](_0x7721('0x2e'),_0x1ea4d+'-'+_0xd7d703+'/'+_0x53c904)[_0x7721('0x29')](_0x52316e);}return null;};}function patchUpdates(_0x48f329){return function(_0x46f772){try{jsonpatch[_0x7721('0x2f')](_0x46f772,_0x48f329,!![]);}catch(_0x382821){return BPromise['reject'](_0x382821);}return _0x46f772[_0x7721('0x30')]();};}function saveUpdates(_0x1ff31b,_0x1492d4){return function(_0x3f15e2){if(_0x3f15e2){return _0x3f15e2[_0x7721('0x31')](_0x1ff31b)['then'](function(_0x195ffb){return _0x195ffb;});}return null;};}function removeEntity(_0x3e4e56,_0xb2386d){return function(_0x5c5b33){if(_0x5c5b33){return _0x5c5b33[_0x7721('0x32')]()[_0x7721('0x33')](function(){_0x3e4e56['status'](0xcc)[_0x7721('0x28')]();});}};}function handleEntityNotFound(_0x5ce026,_0x2d6ba0){return function(_0x326c50){if(!_0x326c50){_0x5ce026[_0x7721('0x34')](0x194);}return _0x326c50;};}function handleError(_0x1d894b,_0x1c84c0){_0x1c84c0=_0x1c84c0||0x1f4;return function(_0x13c635){logger[_0x7721('0x22')](_0x13c635[_0x7721('0x35')]);if(_0x13c635[_0x7721('0x36')]){delete _0x13c635[_0x7721('0x36')];}_0x1d894b[_0x7721('0x27')](_0x1c84c0)['send'](_0x13c635);};}function getMustacheRender(_0xd1df68,_0x5e6663){return Mustache[_0x7721('0x37')](_0xd1df68,_[_0x7721('0x38')](_0x5e6663[_0x7721('0x39')],{'contact':_0x5e6663[_0x7721('0x3a')],'message':_0x5e6663[_0x7721('0x24')],'agent':_0x5e6663[_0x7721('0x3b')],'interaction':_0x5e6663['interaction'],'account':_0x5e6663['account']}))||'';}exports['index']=function(_0x539560,_0x18001c){var _0x1b3f8d={},_0x1acc72={},_0x22ef35={'count':0x0,'rows':[]};var _0x4a90ce=_[_0x7721('0x3c')](db['DeskAccount'][_0x7721('0x3d')],function(_0x11f356){return{'name':_0x11f356['fieldName'],'type':_0x11f356[_0x7721('0x3e')][_0x7721('0x3f')]};});_0x1acc72['model']=_['map'](_0x4a90ce,_0x7721('0x36'));_0x1acc72[_0x7721('0x40')]=_[_0x7721('0x41')](_0x539560[_0x7721('0x40')]);_0x1acc72['filters']=_[_0x7721('0x42')](_0x1acc72[_0x7721('0x43')],_0x1acc72[_0x7721('0x40')]);_0x1b3f8d[_0x7721('0x44')]=_[_0x7721('0x42')](_0x1acc72['model'],qs[_0x7721('0x45')](_0x539560['query'][_0x7721('0x45')]));_0x1b3f8d['attributes']=_0x1b3f8d[_0x7721('0x44')][_0x7721('0x46')]?_0x1b3f8d[_0x7721('0x44')]:_0x1acc72['model'];if(!_0x539560[_0x7721('0x40')][_0x7721('0x47')](_0x7721('0x48'))){_0x1b3f8d['limit']=qs[_0x7721('0x2a')](_0x539560[_0x7721('0x40')][_0x7721('0x2a')]);_0x1b3f8d[_0x7721('0x2d')]=qs[_0x7721('0x2d')](_0x539560[_0x7721('0x40')][_0x7721('0x2d')]);}_0x1b3f8d['order']=qs['sort'](_0x539560[_0x7721('0x40')][_0x7721('0x49')]);_0x1b3f8d[_0x7721('0x4a')]=qs[_0x7721('0x4b')](_[_0x7721('0x4c')](_0x539560[_0x7721('0x40')],_0x1acc72[_0x7721('0x4b')]),_0x4a90ce);if(_0x539560[_0x7721('0x40')][_0x7721('0x4d')]){_0x1b3f8d[_0x7721('0x4a')]=_['merge'](_0x1b3f8d['where'],{'$or':_[_0x7721('0x3c')](_0x4a90ce,function(_0x6a4664){if(_0x6a4664[_0x7721('0x3e')]!==_0x7721('0x4e')){var _0x589e95={};_0x589e95[_0x6a4664[_0x7721('0x36')]]={'$like':'%'+_0x539560[_0x7721('0x40')]['filter']+'%'};return _0x589e95;}})});}_0x1b3f8d=_[_0x7721('0x38')]({},_0x1b3f8d,_0x539560['options']);var _0x2682b1={'where':_0x1b3f8d['where']};return db[_0x7721('0x4f')][_0x7721('0x2c')](_0x2682b1)[_0x7721('0x33')](function(_0x4eda58){_0x22ef35[_0x7721('0x2c')]=_0x4eda58;if(_0x539560[_0x7721('0x40')]['includeAll']){_0x1b3f8d[_0x7721('0x50')]=[{'all':!![]}];}return db[_0x7721('0x4f')][_0x7721('0x51')](_0x1b3f8d);})['then'](function(_0x20ba21){_0x22ef35['rows']=_0x20ba21;return _0x22ef35;})[_0x7721('0x33')](respondWithFilteredResult(_0x18001c,_0x1b3f8d))[_0x7721('0x26')](handleError(_0x18001c,null));};exports[_0x7721('0x52')]=function(_0x443503,_0x1c95d8){var _0x7de310={'raw':![],'where':{'id':_0x443503[_0x7721('0x53')]['id']}},_0x163a23={};_0x163a23[_0x7721('0x43')]=_[_0x7721('0x41')](db[_0x7721('0x4f')][_0x7721('0x3d')]);_0x163a23[_0x7721('0x40')]=_[_0x7721('0x41')](_0x443503[_0x7721('0x40')]);_0x163a23['filters']=_[_0x7721('0x42')](_0x163a23[_0x7721('0x43')],_0x163a23[_0x7721('0x40')]);_0x7de310[_0x7721('0x44')]=_[_0x7721('0x42')](_0x163a23[_0x7721('0x43')],qs[_0x7721('0x45')](_0x443503['query'][_0x7721('0x45')]));_0x7de310[_0x7721('0x44')]=_0x7de310[_0x7721('0x44')][_0x7721('0x46')]?_0x7de310[_0x7721('0x44')]:_0x163a23[_0x7721('0x43')];if(_0x443503[_0x7721('0x40')][_0x7721('0x54')]){_0x7de310[_0x7721('0x50')]=[{'all':!![]}];}_0x7de310=_[_0x7721('0x38')]({},_0x7de310,_0x443503[_0x7721('0x55')]);return db['DeskAccount'][_0x7721('0x56')](_0x7de310)[_0x7721('0x33')](handleEntityNotFound(_0x1c95d8,null))[_0x7721('0x33')](respondWithResult(_0x1c95d8,null))[_0x7721('0x26')](handleError(_0x1c95d8,null));};exports[_0x7721('0x57')]=function(_0x3e7918,_0x41644f){return db[_0x7721('0x4f')][_0x7721('0x57')](_0x3e7918[_0x7721('0x39')],{})[_0x7721('0x33')](respondWithResult(_0x41644f,0xc9))[_0x7721('0x26')](handleError(_0x41644f,null));};exports[_0x7721('0x31')]=function(_0x18f7f6,_0x300ea4){if(_0x18f7f6['body']['id']){delete _0x18f7f6['body']['id'];}return db['DeskAccount'][_0x7721('0x56')]({'where':{'id':_0x18f7f6['params']['id']}})['then'](handleEntityNotFound(_0x300ea4,null))['then'](saveUpdates(_0x18f7f6['body'],null))[_0x7721('0x33')](respondWithResult(_0x300ea4,null))[_0x7721('0x26')](handleError(_0x300ea4,null));};exports[_0x7721('0x32')]=function(_0x5343a1,_0x5181d7){return db['DeskAccount']['find']({'where':{'id':_0x5343a1['params']['id']}})[_0x7721('0x33')](handleEntityNotFound(_0x5181d7,null))['then'](removeEntity(_0x5181d7,null))['catch'](handleError(_0x5181d7,null));};exports['getConfigurations']=function(_0x160292,_0x2e9155,_0x1ff090){var _0x4a94c8={};var _0x2a025c={};var _0x1f1890;var _0x2c95d0;return db[_0x7721('0x4f')][_0x7721('0x58')]({'where':{'id':_0x160292[_0x7721('0x53')]['id']}})[_0x7721('0x33')](handleEntityNotFound(_0x2e9155,null))[_0x7721('0x33')](function(_0x127f46){if(_0x127f46){_0x1f1890=_0x127f46;_0x2a025c[_0x7721('0x43')]=_[_0x7721('0x41')](db[_0x7721('0x59')][_0x7721('0x3d')]);_0x2a025c[_0x7721('0x40')]=_[_0x7721('0x41')](_0x160292['query']);_0x2a025c[_0x7721('0x4b')]=_[_0x7721('0x42')](_0x2a025c[_0x7721('0x43')],_0x2a025c[_0x7721('0x40')]);_0x4a94c8['attributes']=_[_0x7721('0x42')](_0x2a025c[_0x7721('0x43')],qs['fields'](_0x160292[_0x7721('0x40')]['fields']));_0x4a94c8[_0x7721('0x44')]=_0x4a94c8[_0x7721('0x44')][_0x7721('0x46')]?_0x4a94c8[_0x7721('0x44')]:_0x2a025c[_0x7721('0x43')];_0x4a94c8[_0x7721('0x5a')]=qs[_0x7721('0x49')](_0x160292[_0x7721('0x40')][_0x7721('0x49')]);_0x4a94c8['where']=qs[_0x7721('0x4b')](_[_0x7721('0x4c')](_0x160292[_0x7721('0x40')],_0x2a025c[_0x7721('0x4b')]));if(_0x160292[_0x7721('0x40')][_0x7721('0x4d')]){_0x4a94c8[_0x7721('0x4a')]=_['merge'](_0x4a94c8[_0x7721('0x4a')],{'$or':_[_0x7721('0x3c')](_0x4a94c8['attributes'],function(_0x192f2e){var _0x565c49={};_0x565c49[_0x192f2e]={'$like':'%'+_0x160292[_0x7721('0x40')][_0x7721('0x4d')]+'%'};return _0x565c49;})});}_0x4a94c8=_[_0x7721('0x38')]({},_0x4a94c8,_0x160292[_0x7721('0x55')]);return _0x1f1890[_0x7721('0x5b')](_0x4a94c8);}})[_0x7721('0x33')](function(_0x258c57){if(_0x258c57){_0x2c95d0=_0x258c57['length'];if(!_0x160292[_0x7721('0x40')][_0x7721('0x47')](_0x7721('0x48'))){_0x4a94c8['limit']=qs['limit'](_0x160292['query']['limit']);_0x4a94c8['offset']=qs[_0x7721('0x2d')](_0x160292[_0x7721('0x40')]['offset']);}return _0x1f1890[_0x7721('0x5b')](_0x4a94c8);}})[_0x7721('0x33')](function(_0xbbc86f){if(_0xbbc86f){return _0xbbc86f?{'count':_0x2c95d0,'rows':_0xbbc86f}:null;}})[_0x7721('0x33')](respondWithResult(_0x2e9155,null))['catch'](handleError(_0x2e9155,null));};exports[_0x7721('0x5c')]=function(_0xfe9fb8,_0x322afc,_0x1bea13){if(_0xfe9fb8[_0x7721('0x39')]['id']){delete _0xfe9fb8['body']['id'];}return db[_0x7721('0x4f')][_0x7721('0x58')]({'where':{'id':_0xfe9fb8[_0x7721('0x53')]['id']}})['then'](handleEntityNotFound(_0x322afc,null))['then'](function(_0x76d89e){if(_0x76d89e){_0xfe9fb8[_0x7721('0x39')][_0x7721('0x5d')]=_0x76d89e['id'];_0xfe9fb8[_0x7721('0x39')][_0x7721('0x5e')]=integrations['getSubjects'](_0xfe9fb8['body'][_0x7721('0x5f')],_0xfe9fb8[_0x7721('0x39')][_0x7721('0x3e')]);_0xfe9fb8[_0x7721('0x39')][_0x7721('0x60')]=integrations[_0x7721('0x61')](_0xfe9fb8[_0x7721('0x39')]['channel'],_0xfe9fb8[_0x7721('0x39')][_0x7721('0x3e')]);return db[_0x7721('0x59')]['create'](_0xfe9fb8[_0x7721('0x39')],{'include':[{'model':db[_0x7721('0x62')],'as':_0x7721('0x5e')},{'model':db[_0x7721('0x62')],'as':'Descriptions'}]});}return null;})['then'](respondWithResult(_0x322afc,null))[_0x7721('0x26')](handleError(_0x322afc,null));};exports[_0x7721('0x63')]=function(_0x177fe3,_0x42c849,_0x3605cb){var _0x2581b3=[{'name':'priority','label':_0x7721('0x64'),'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 _0x42bb5a='';return db[_0x7721('0x4f')]['findOne']({'where':{'id':_0x177fe3[_0x7721('0x53')]['id']},'attributes':['id',_0x7721('0x65'),_0x7721('0x66'),_0x7721('0x67'),_0x7721('0x68'),'consumerKey',_0x7721('0x69'),'token',_0x7721('0x6a')]})[_0x7721('0x33')](handleEntityNotFound(_0x42c849,null))[_0x7721('0x33')](function(_0x7f0598){if(_0x7f0598){_0x42bb5a=_0x7f0598[_0x7721('0x65')];var _0x438b9f=_0x42bb5a[_0x7721('0x6b')](-0x1);if(_0x438b9f==='/'){_0x42bb5a=_0x42bb5a[_0x7721('0x6c')](0x0,_0x42bb5a[_0x7721('0x6d')](_0x438b9f));}var _0x3b78f5={'method':_0x7721('0x6e'),'uri':util['format'](_0x7721('0x6f'),_0x42bb5a),'headers':{'Content-Type':_0x7721('0x70'),'Accept':_0x7721('0x70')},'json':!![]};if(_0x7f0598['authType']===_0x7721('0x71')){_0x3b78f5[_0x7721('0x72')][_0x7721('0x73')]=util[_0x7721('0x74')](_0x7721('0x75'),new Buffer(util['format'](_0x7721('0x76'),_0x7f0598[_0x7721('0x67')],_0x7f0598[_0x7721('0x68')]))[_0x7721('0x77')](_0x7721('0x78')));}return rp(_0x3b78f5)[_0x7721('0x33')](function(_0x52270e){return _0x2581b3[_0x7721('0x79')](_[_0x7721('0x3c')](_0x52270e['_embedded'][_0x7721('0x7a')],function(_0x4c8fb9){return{'id':_0x4c8fb9[_0x7721('0x36')],'name':_0x4c8fb9[_0x7721('0x36')],'type':_0x4c8fb9['type'],'active':_0x4c8fb9[_0x7721('0x7b')],'label':_0x4c8fb9['label'],'custom':!![]};}));});}})['then'](function(_0x4c47fc){return{'count':_0x4c47fc[_0x7721('0x46')],'rows':_0x4c47fc};})[_0x7721('0x33')](respondWithResult(_0x42c849,null))[_0x7721('0x26')](function(_0x48b701){var _0x4916c2=_0x177fe3['query'][_0x7721('0x7c')]?0x1f4:_0x48b701[_0x7721('0x7d')]||0x1f4;logger[_0x7721('0x22')](_0x7721('0x7e'),_0x7721('0x63'),_0x4916c2,JSON[_0x7721('0x7f')](_0x48b701));delete _0x48b701['name'];if(_0x4916c2===0x191){_0x4916c2=0x190;}_0x42c849[_0x7721('0x27')](_0x4916c2)[_0x7721('0x80')](_0x177fe3[_0x7721('0x40')][_0x7721('0x7c')]?{'message':_0x7721('0x81'),'statusCode':_0x48b701[_0x7721('0x7d')]}:_0x48b701);});};