775733b1e048d01ba0b98cd3a5ebac49951e8269
[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 _0x13c9=['key','model','map','query','filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','DeskAccount','includeAll','include','findAll','catch','show','params','keys','find','create','body','getConfigurations','findOne','DeskConfiguration','addConfiguration','AccountId','Subjects','channel','getDescriptions','DeskField','Descriptions','priority','authType','username','consumerSecret','tokenSecret','remoteUri','substring','lastIndexOf','GET','format','%s/custom_fields','application/json','basic','headers','%s:%s','password','toString','base64','concat','_embedded','entries','active','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','stringify','send','test','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','util','path','sox','to-csv','ejs','fs-extra','lodash','jsforce','querystring','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../components/integrations/configuration','status','json','offset','undefined','count','limit','Content-Range','save','update','then','destroy','end','sendStatus','error','name','index','rawAttributes','fieldName','type'];(function(_0x1419be,_0x2003f2){var _0x5136bd=function(_0x49c834){while(--_0x49c834){_0x1419be['push'](_0x1419be['shift']());}};_0x5136bd(++_0x2003f2);}(_0x13c9,0x11e));var _0x913c=function(_0x1653ba,_0x272a5a){_0x1653ba=_0x1653ba-0x0;var _0x2d5912=_0x13c9[_0x1653ba];return _0x2d5912;};'use strict';var emlformat=require(_0x913c('0x0'));var rimraf=require(_0x913c('0x1'));var zipdir=require(_0x913c('0x2'));var jsonpatch=require(_0x913c('0x3'));var rp=require(_0x913c('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x913c('0x5'));var path=require(_0x913c('0x6'));var sox=require(_0x913c('0x7'));var csv=require(_0x913c('0x8'));var ejs=require(_0x913c('0x9'));var fs=require('fs');var fs_extra=require(_0x913c('0xa'));var _=require(_0x913c('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x913c('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x913c('0x8'));var querystring=require(_0x913c('0xd'));var Papa=require('papaparse');var Redis=require(_0x913c('0xe'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x913c('0xf'));var hardwareService=require(_0x913c('0x10'));var logger=require(_0x913c('0x11'))('api');var utils=require(_0x913c('0x12'));var config=require(_0x913c('0x13'));var licenseUtil=require(_0x913c('0x14'));var db=require('../../mysqldb')['db'];var integrations=require(_0x913c('0x15'));function respondWithStatusCode(_0x3b1d00,_0x2f8437){_0x2f8437=_0x2f8437||0xcc;return function(_0x4a9d18){if(_0x4a9d18){return _0x3b1d00['sendStatus'](_0x2f8437);}return _0x3b1d00['status'](_0x2f8437)['end']();};}function respondWithResult(_0x511924,_0x5f19f2){_0x5f19f2=_0x5f19f2||0xc8;return function(_0x1508b4){if(_0x1508b4){return _0x511924[_0x913c('0x16')](_0x5f19f2)[_0x913c('0x17')](_0x1508b4);}};}function respondWithFilteredResult(_0x3cb38b,_0x1071a4){return function(_0x4c5e57){if(_0x4c5e57){var _0x189179=typeof _0x1071a4[_0x913c('0x18')]===_0x913c('0x19')&&typeof _0x1071a4['limit']===_0x913c('0x19');var _0x34c848=_0x4c5e57[_0x913c('0x1a')];var _0x583633=_0x189179?0x0:_0x1071a4[_0x913c('0x18')];var _0x5bb42c=_0x189179?_0x4c5e57['count']:_0x1071a4['offset']+_0x1071a4[_0x913c('0x1b')];var _0x4f1030;if(_0x5bb42c>=_0x34c848){_0x5bb42c=_0x34c848;_0x4f1030=0xc8;}else{_0x4f1030=0xce;}_0x3cb38b[_0x913c('0x16')](_0x4f1030);return _0x3cb38b['set'](_0x913c('0x1c'),_0x583633+'-'+_0x5bb42c+'/'+_0x34c848)[_0x913c('0x17')](_0x4c5e57);}return null;};}function patchUpdates(_0x314786){return function(_0x3559df){try{jsonpatch['apply'](_0x3559df,_0x314786,!![]);}catch(_0x3106ce){return BPromise['reject'](_0x3106ce);}return _0x3559df[_0x913c('0x1d')]();};}function saveUpdates(_0x51f184,_0x3ef244){return function(_0x5bab5e){if(_0x5bab5e){return _0x5bab5e[_0x913c('0x1e')](_0x51f184)[_0x913c('0x1f')](function(_0x2f5bcd){return _0x2f5bcd;});}return null;};}function removeEntity(_0x5df151,_0x236bb2){return function(_0x4a3785){if(_0x4a3785){return _0x4a3785[_0x913c('0x20')]()[_0x913c('0x1f')](function(){_0x5df151[_0x913c('0x16')](0xcc)[_0x913c('0x21')]();});}};}function handleEntityNotFound(_0x2667f9,_0x219123){return function(_0x4bd65b){if(!_0x4bd65b){_0x2667f9[_0x913c('0x22')](0x194);}return _0x4bd65b;};}function handleError(_0x3b6d63,_0x2466f0){_0x2466f0=_0x2466f0||0x1f4;return function(_0x3aea82){logger[_0x913c('0x23')](_0x3aea82['stack']);if(_0x3aea82['name']){delete _0x3aea82[_0x913c('0x24')];}_0x3b6d63[_0x913c('0x16')](_0x2466f0)['send'](_0x3aea82);};}exports[_0x913c('0x25')]=function(_0x43bfdf,_0x3e6060){var _0x3b0b7f={},_0xdf04b1={},_0x243044={'count':0x0,'rows':[]};var _0x55d903=_['map'](db['DeskAccount'][_0x913c('0x26')],function(_0x28be9c){return{'name':_0x28be9c[_0x913c('0x27')],'type':_0x28be9c[_0x913c('0x28')][_0x913c('0x29')]};});_0xdf04b1[_0x913c('0x2a')]=_[_0x913c('0x2b')](_0x55d903,'name');_0xdf04b1['query']=_['keys'](_0x43bfdf[_0x913c('0x2c')]);_0xdf04b1[_0x913c('0x2d')]=_[_0x913c('0x2e')](_0xdf04b1[_0x913c('0x2a')],_0xdf04b1['query']);_0x3b0b7f[_0x913c('0x2f')]=_[_0x913c('0x2e')](_0xdf04b1[_0x913c('0x2a')],qs[_0x913c('0x30')](_0x43bfdf[_0x913c('0x2c')][_0x913c('0x30')]));_0x3b0b7f[_0x913c('0x2f')]=_0x3b0b7f[_0x913c('0x2f')][_0x913c('0x31')]?_0x3b0b7f[_0x913c('0x2f')]:_0xdf04b1[_0x913c('0x2a')];if(!_0x43bfdf[_0x913c('0x2c')]['hasOwnProperty'](_0x913c('0x32'))){_0x3b0b7f[_0x913c('0x1b')]=qs['limit'](_0x43bfdf['query'][_0x913c('0x1b')]);_0x3b0b7f['offset']=qs[_0x913c('0x18')](_0x43bfdf[_0x913c('0x2c')]['offset']);}_0x3b0b7f[_0x913c('0x33')]=qs[_0x913c('0x34')](_0x43bfdf[_0x913c('0x2c')][_0x913c('0x34')]);_0x3b0b7f[_0x913c('0x35')]=qs[_0x913c('0x2d')](_[_0x913c('0x36')](_0x43bfdf[_0x913c('0x2c')],_0xdf04b1[_0x913c('0x2d')]),_0x55d903);if(_0x43bfdf[_0x913c('0x2c')][_0x913c('0x37')]){_0x3b0b7f[_0x913c('0x35')]=_[_0x913c('0x38')](_0x3b0b7f[_0x913c('0x35')],{'$or':_[_0x913c('0x2b')](_0x55d903,function(_0x11ff6a){if(_0x11ff6a[_0x913c('0x28')]!==_0x913c('0x39')){var _0x3f695e={};_0x3f695e[_0x11ff6a[_0x913c('0x24')]]={'$like':'%'+_0x43bfdf[_0x913c('0x2c')][_0x913c('0x37')]+'%'};return _0x3f695e;}})});}_0x3b0b7f=_[_0x913c('0x38')]({},_0x3b0b7f,_0x43bfdf[_0x913c('0x3a')]);var _0x35f986={'where':_0x3b0b7f['where']};return db[_0x913c('0x3b')][_0x913c('0x1a')](_0x35f986)[_0x913c('0x1f')](function(_0x266e3b){_0x243044[_0x913c('0x1a')]=_0x266e3b;if(_0x43bfdf['query'][_0x913c('0x3c')]){_0x3b0b7f[_0x913c('0x3d')]=[{'all':!![]}];}return db[_0x913c('0x3b')][_0x913c('0x3e')](_0x3b0b7f);})[_0x913c('0x1f')](function(_0x18ce3f){_0x243044['rows']=_0x18ce3f;return _0x243044;})[_0x913c('0x1f')](respondWithFilteredResult(_0x3e6060,_0x3b0b7f))[_0x913c('0x3f')](handleError(_0x3e6060,null));};exports[_0x913c('0x40')]=function(_0x3362fe,_0x4127c2){var _0x3322ff={'raw':![],'where':{'id':_0x3362fe[_0x913c('0x41')]['id']}},_0x2906c2={};_0x2906c2[_0x913c('0x2a')]=_[_0x913c('0x42')](db[_0x913c('0x3b')][_0x913c('0x26')]);_0x2906c2[_0x913c('0x2c')]=_['keys'](_0x3362fe[_0x913c('0x2c')]);_0x2906c2[_0x913c('0x2d')]=_['intersection'](_0x2906c2['model'],_0x2906c2['query']);_0x3322ff[_0x913c('0x2f')]=_[_0x913c('0x2e')](_0x2906c2['model'],qs[_0x913c('0x30')](_0x3362fe[_0x913c('0x2c')][_0x913c('0x30')]));_0x3322ff[_0x913c('0x2f')]=_0x3322ff[_0x913c('0x2f')][_0x913c('0x31')]?_0x3322ff[_0x913c('0x2f')]:_0x2906c2[_0x913c('0x2a')];if(_0x3362fe[_0x913c('0x2c')][_0x913c('0x3c')]){_0x3322ff[_0x913c('0x3d')]=[{'all':!![]}];}_0x3322ff=_[_0x913c('0x38')]({},_0x3322ff,_0x3362fe[_0x913c('0x3a')]);return db[_0x913c('0x3b')][_0x913c('0x43')](_0x3322ff)[_0x913c('0x1f')](handleEntityNotFound(_0x4127c2,null))['then'](respondWithResult(_0x4127c2,null))['catch'](handleError(_0x4127c2,null));};exports[_0x913c('0x44')]=function(_0x31fd49,_0x557c04){return db[_0x913c('0x3b')]['create'](_0x31fd49[_0x913c('0x45')],{})['then'](respondWithResult(_0x557c04,0xc9))[_0x913c('0x3f')](handleError(_0x557c04,null));};exports[_0x913c('0x1e')]=function(_0x722178,_0xc27bc1){if(_0x722178[_0x913c('0x45')]['id']){delete _0x722178[_0x913c('0x45')]['id'];}return db[_0x913c('0x3b')][_0x913c('0x43')]({'where':{'id':_0x722178[_0x913c('0x41')]['id']}})[_0x913c('0x1f')](handleEntityNotFound(_0xc27bc1,null))[_0x913c('0x1f')](saveUpdates(_0x722178['body'],null))[_0x913c('0x1f')](respondWithResult(_0xc27bc1,null))[_0x913c('0x3f')](handleError(_0xc27bc1,null));};exports['destroy']=function(_0x27e2be,_0x366e16){return db['DeskAccount'][_0x913c('0x43')]({'where':{'id':_0x27e2be[_0x913c('0x41')]['id']}})['then'](handleEntityNotFound(_0x366e16,null))[_0x913c('0x1f')](removeEntity(_0x366e16,null))[_0x913c('0x3f')](handleError(_0x366e16,null));};exports[_0x913c('0x46')]=function(_0xd441e4,_0x46edde,_0x54a5ff){var _0x2dd4bc={};var _0x5632f2={};var _0x40daea;var _0x40fdab;return db['DeskAccount'][_0x913c('0x47')]({'where':{'id':_0xd441e4[_0x913c('0x41')]['id']}})[_0x913c('0x1f')](handleEntityNotFound(_0x46edde,null))['then'](function(_0x29d293){if(_0x29d293){_0x40daea=_0x29d293;_0x5632f2[_0x913c('0x2a')]=_[_0x913c('0x42')](db[_0x913c('0x48')]['rawAttributes']);_0x5632f2['query']=_[_0x913c('0x42')](_0xd441e4[_0x913c('0x2c')]);_0x5632f2[_0x913c('0x2d')]=_[_0x913c('0x2e')](_0x5632f2[_0x913c('0x2a')],_0x5632f2[_0x913c('0x2c')]);_0x2dd4bc['attributes']=_[_0x913c('0x2e')](_0x5632f2[_0x913c('0x2a')],qs[_0x913c('0x30')](_0xd441e4[_0x913c('0x2c')][_0x913c('0x30')]));_0x2dd4bc['attributes']=_0x2dd4bc[_0x913c('0x2f')]['length']?_0x2dd4bc[_0x913c('0x2f')]:_0x5632f2['model'];_0x2dd4bc[_0x913c('0x33')]=qs[_0x913c('0x34')](_0xd441e4['query'][_0x913c('0x34')]);_0x2dd4bc[_0x913c('0x35')]=qs[_0x913c('0x2d')](_[_0x913c('0x36')](_0xd441e4[_0x913c('0x2c')],_0x5632f2['filters']));if(_0xd441e4[_0x913c('0x2c')][_0x913c('0x37')]){_0x2dd4bc[_0x913c('0x35')]=_[_0x913c('0x38')](_0x2dd4bc['where'],{'$or':_['map'](_0x2dd4bc[_0x913c('0x2f')],function(_0x2fc6dc){var _0x594104={};_0x594104[_0x2fc6dc]={'$like':'%'+_0xd441e4[_0x913c('0x2c')][_0x913c('0x37')]+'%'};return _0x594104;})});}_0x2dd4bc=_['merge']({},_0x2dd4bc,_0xd441e4['options']);return _0x40daea[_0x913c('0x46')](_0x2dd4bc);}})[_0x913c('0x1f')](function(_0x130937){if(_0x130937){_0x40fdab=_0x130937['length'];if(!_0xd441e4[_0x913c('0x2c')]['hasOwnProperty'](_0x913c('0x32'))){_0x2dd4bc[_0x913c('0x1b')]=qs[_0x913c('0x1b')](_0xd441e4[_0x913c('0x2c')][_0x913c('0x1b')]);_0x2dd4bc[_0x913c('0x18')]=qs[_0x913c('0x18')](_0xd441e4[_0x913c('0x2c')][_0x913c('0x18')]);}return _0x40daea[_0x913c('0x46')](_0x2dd4bc);}})['then'](function(_0x59dc25){if(_0x59dc25){return _0x59dc25?{'count':_0x40fdab,'rows':_0x59dc25}:null;}})[_0x913c('0x1f')](respondWithResult(_0x46edde,null))[_0x913c('0x3f')](handleError(_0x46edde,null));};exports[_0x913c('0x49')]=function(_0x4448c7,_0x53e544,_0x20188f){if(_0x4448c7[_0x913c('0x45')]['id']){delete _0x4448c7[_0x913c('0x45')]['id'];}return db['DeskAccount'][_0x913c('0x47')]({'where':{'id':_0x4448c7[_0x913c('0x41')]['id']}})[_0x913c('0x1f')](handleEntityNotFound(_0x53e544,null))[_0x913c('0x1f')](function(_0x4ca96d){if(_0x4ca96d){_0x4448c7[_0x913c('0x45')][_0x913c('0x4a')]=_0x4ca96d['id'];_0x4448c7['body'][_0x913c('0x4b')]=integrations['getSubjects'](_0x4448c7[_0x913c('0x45')][_0x913c('0x4c')],_0x4448c7[_0x913c('0x45')]['type']);_0x4448c7[_0x913c('0x45')]['Descriptions']=integrations[_0x913c('0x4d')](_0x4448c7[_0x913c('0x45')][_0x913c('0x4c')],_0x4448c7[_0x913c('0x45')][_0x913c('0x28')]);return db[_0x913c('0x48')][_0x913c('0x44')](_0x4448c7[_0x913c('0x45')],{'include':[{'model':db[_0x913c('0x4e')],'as':'Subjects'},{'model':db[_0x913c('0x4e')],'as':_0x913c('0x4f')}]});}return null;})['then'](respondWithResult(_0x53e544,null))[_0x913c('0x3f')](handleError(_0x53e544,null));};exports['getFields']=function(_0x16049b,_0x11ba02,_0x29c82d){var _0x2e23bf=[{'name':_0x913c('0x50'),'label':_0x913c('0x50'),'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 _0xd64381='';return db[_0x913c('0x3b')]['findOne']({'where':{'id':_0x16049b[_0x913c('0x41')]['id']},'attributes':['id','remoteUri',_0x913c('0x51'),_0x913c('0x52'),'password','consumerKey',_0x913c('0x53'),'token',_0x913c('0x54')]})[_0x913c('0x1f')](handleEntityNotFound(_0x11ba02,null))[_0x913c('0x1f')](function(_0x3489ff){if(_0x3489ff){_0xd64381=_0x3489ff[_0x913c('0x55')];var _0x42e83a=_0xd64381['slice'](-0x1);if(_0x42e83a==='/'){_0xd64381=_0xd64381[_0x913c('0x56')](0x0,_0xd64381[_0x913c('0x57')](_0x42e83a));}var _0xf69fa7={'method':_0x913c('0x58'),'uri':util[_0x913c('0x59')](_0x913c('0x5a'),_0xd64381),'headers':{'Content-Type':_0x913c('0x5b'),'Accept':_0x913c('0x5b')},'json':!![]};if(_0x3489ff['authType']===_0x913c('0x5c')){_0xf69fa7[_0x913c('0x5d')]['Authorization']=util[_0x913c('0x59')]('Basic\x20%s',new Buffer(util[_0x913c('0x59')](_0x913c('0x5e'),_0x3489ff[_0x913c('0x52')],_0x3489ff[_0x913c('0x5f')]))[_0x913c('0x60')](_0x913c('0x61')));}return rp(_0xf69fa7)[_0x913c('0x1f')](function(_0x16b1cf){return _0x2e23bf[_0x913c('0x62')](_[_0x913c('0x2b')](_0x16b1cf[_0x913c('0x63')][_0x913c('0x64')],function(_0x486b9c){return{'id':_0x486b9c[_0x913c('0x24')],'name':_0x486b9c[_0x913c('0x24')],'type':_0x486b9c[_0x913c('0x28')],'active':_0x486b9c[_0x913c('0x65')],'label':_0x486b9c['label'],'custom':!![]};}));});}})['then'](function(_0x224de7){return{'count':_0x224de7[_0x913c('0x31')],'rows':_0x224de7};})['then'](respondWithResult(_0x11ba02,null))[_0x913c('0x3f')](function(_0x26db76){var _0x2d1a09=_0x16049b[_0x913c('0x2c')]['test']?0x1f4:_0x26db76[_0x913c('0x66')]||0x1f4;logger[_0x913c('0x23')](_0x913c('0x67'),_0x913c('0x68'),_0x2d1a09,JSON[_0x913c('0x69')](_0x26db76));delete _0x26db76[_0x913c('0x24')];if(_0x2d1a09===0x191){_0x2d1a09=0x190;}_0x11ba02[_0x913c('0x16')](_0x2d1a09)[_0x913c('0x6a')](_0x16049b[_0x913c('0x2c')][_0x913c('0x6b')]?{'message':_0x913c('0x6c'),'statusCode':_0x26db76['statusCode']}:_0x26db76);});};