0b70b5ecb5b592a63a904a48b49b46b1c1f2d186
[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 _0x9b04=['concat','_embedded','entries','active','label','statusCode','error','getFields,\x20%s,\x20%s,\x20%s','test','Wrong\x20credentials','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','end','offset','undefined','count','limit','status','set','Content-Range','json','reject','save','update','then','stack','name','send','index','map','DeskAccount','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','includeAll','include','findAll','catch','show','params','keys','length','body','find','destroy','getConfigurations','findOne','DeskConfiguration','addConfiguration','AccountId','Subjects','getSubjects','Descriptions','channel','DeskField','getFields','priority','authType','username','password','consumerSecret','token','tokenSecret','substring','GET','format','%s/custom_fields','application/json','basic','headers','Authorization','Basic\x20%s','base64'];(function(_0x12cbcf,_0x30726e){var _0x3928b2=function(_0x557f6b){while(--_0x557f6b){_0x12cbcf['push'](_0x12cbcf['shift']());}};_0x3928b2(++_0x30726e);}(_0x9b04,0x7b));var _0x49b0=function(_0x466f51,_0x1393ed){_0x466f51=_0x466f51-0x0;var _0x2db305=_0x9b04[_0x466f51];return _0x2db305;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x49b0('0x0'));var zipdir=require(_0x49b0('0x1'));var jsonpatch=require(_0x49b0('0x2'));var rp=require(_0x49b0('0x3'));var moment=require(_0x49b0('0x4'));var BPromise=require(_0x49b0('0x5'));var Mustache=require(_0x49b0('0x6'));var util=require(_0x49b0('0x7'));var path=require(_0x49b0('0x8'));var sox=require('sox');var csv=require(_0x49b0('0x9'));var ejs=require(_0x49b0('0xa'));var fs=require('fs');var fs_extra=require(_0x49b0('0xb'));var _=require(_0x49b0('0xc'));var squel=require(_0x49b0('0xd'));var crypto=require(_0x49b0('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x49b0('0xf'));var toCsv=require('to-csv');var querystring=require(_0x49b0('0x10'));var Papa=require(_0x49b0('0x11'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x49b0('0x12'));var hardwareService=require(_0x49b0('0x13'));var logger=require(_0x49b0('0x14'))(_0x49b0('0x15'));var utils=require(_0x49b0('0x16'));var config=require(_0x49b0('0x17'));var licenseUtil=require(_0x49b0('0x18'));var db=require('../../mysqldb')['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x69773e,_0x2b68b0){_0x2b68b0=_0x2b68b0||0xcc;return function(_0x572fe4){if(_0x572fe4){return _0x69773e[_0x49b0('0x19')](_0x2b68b0);}return _0x69773e['status'](_0x2b68b0)[_0x49b0('0x1a')]();};}function respondWithResult(_0x5e4ef5,_0x5870b1){_0x5870b1=_0x5870b1||0xc8;return function(_0x543779){if(_0x543779){return _0x5e4ef5['status'](_0x5870b1)['json'](_0x543779);}};}function respondWithFilteredResult(_0x47f9a1,_0x34cfa2){return function(_0x488a93){if(_0x488a93){var _0x40cf76=typeof _0x34cfa2[_0x49b0('0x1b')]===_0x49b0('0x1c')&&typeof _0x34cfa2['limit']===_0x49b0('0x1c');var _0x296e91=_0x488a93[_0x49b0('0x1d')];var _0x5eb8ad=_0x40cf76?0x0:_0x34cfa2[_0x49b0('0x1b')];var _0x366c03=_0x40cf76?_0x488a93['count']:_0x34cfa2[_0x49b0('0x1b')]+_0x34cfa2[_0x49b0('0x1e')];var _0xa0375a;if(_0x366c03>=_0x296e91){_0x366c03=_0x296e91;_0xa0375a=0xc8;}else{_0xa0375a=0xce;}_0x47f9a1[_0x49b0('0x1f')](_0xa0375a);return _0x47f9a1[_0x49b0('0x20')](_0x49b0('0x21'),_0x5eb8ad+'-'+_0x366c03+'/'+_0x296e91)[_0x49b0('0x22')](_0x488a93);}return null;};}function patchUpdates(_0x199ab3){return function(_0x3600b9){try{jsonpatch['apply'](_0x3600b9,_0x199ab3,!![]);}catch(_0x45321e){return BPromise[_0x49b0('0x23')](_0x45321e);}return _0x3600b9[_0x49b0('0x24')]();};}function saveUpdates(_0x4ef60f,_0x40d200){return function(_0xe551d){if(_0xe551d){return _0xe551d[_0x49b0('0x25')](_0x4ef60f)[_0x49b0('0x26')](function(_0x4585e7){return _0x4585e7;});}return null;};}function removeEntity(_0x36b1ff,_0x511e22){return function(_0x14a3d3){if(_0x14a3d3){return _0x14a3d3['destroy']()['then'](function(){_0x36b1ff[_0x49b0('0x1f')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1ed504,_0x99ae55){return function(_0x40fdd2){if(!_0x40fdd2){_0x1ed504[_0x49b0('0x19')](0x194);}return _0x40fdd2;};}function handleError(_0x3cb333,_0x31653b){_0x31653b=_0x31653b||0x1f4;return function(_0x25a2f4){logger['error'](_0x25a2f4[_0x49b0('0x27')]);if(_0x25a2f4[_0x49b0('0x28')]){delete _0x25a2f4['name'];}_0x3cb333[_0x49b0('0x1f')](_0x31653b)[_0x49b0('0x29')](_0x25a2f4);};}exports[_0x49b0('0x2a')]=function(_0x3a7d31,_0x1fc3cd){var _0x59195d={},_0x216906={},_0x25c3cd={'count':0x0,'rows':[]};var _0x1ad801=_[_0x49b0('0x2b')](db[_0x49b0('0x2c')][_0x49b0('0x2d')],function(_0x32798c){return{'name':_0x32798c[_0x49b0('0x2e')],'type':_0x32798c[_0x49b0('0x2f')][_0x49b0('0x30')]};});_0x216906[_0x49b0('0x31')]=_[_0x49b0('0x2b')](_0x1ad801,_0x49b0('0x28'));_0x216906['query']=_['keys'](_0x3a7d31[_0x49b0('0x32')]);_0x216906[_0x49b0('0x33')]=_[_0x49b0('0x34')](_0x216906[_0x49b0('0x31')],_0x216906[_0x49b0('0x32')]);_0x59195d[_0x49b0('0x35')]=_['intersection'](_0x216906[_0x49b0('0x31')],qs[_0x49b0('0x36')](_0x3a7d31[_0x49b0('0x32')][_0x49b0('0x36')]));_0x59195d[_0x49b0('0x35')]=_0x59195d[_0x49b0('0x35')]['length']?_0x59195d[_0x49b0('0x35')]:_0x216906[_0x49b0('0x31')];if(!_0x3a7d31['query'][_0x49b0('0x37')](_0x49b0('0x38'))){_0x59195d[_0x49b0('0x1e')]=qs[_0x49b0('0x1e')](_0x3a7d31['query'][_0x49b0('0x1e')]);_0x59195d[_0x49b0('0x1b')]=qs['offset'](_0x3a7d31[_0x49b0('0x32')][_0x49b0('0x1b')]);}_0x59195d[_0x49b0('0x39')]=qs[_0x49b0('0x3a')](_0x3a7d31[_0x49b0('0x32')]['sort']);_0x59195d[_0x49b0('0x3b')]=qs[_0x49b0('0x33')](_[_0x49b0('0x3c')](_0x3a7d31['query'],_0x216906[_0x49b0('0x33')]),_0x1ad801);if(_0x3a7d31[_0x49b0('0x32')][_0x49b0('0x3d')]){_0x59195d[_0x49b0('0x3b')]=_['merge'](_0x59195d['where'],{'$or':_[_0x49b0('0x2b')](_0x1ad801,function(_0x171497){if(_0x171497['type']!=='VIRTUAL'){var _0xac862b={};_0xac862b[_0x171497[_0x49b0('0x28')]]={'$like':'%'+_0x3a7d31[_0x49b0('0x32')][_0x49b0('0x3d')]+'%'};return _0xac862b;}})});}_0x59195d=_[_0x49b0('0x3e')]({},_0x59195d,_0x3a7d31[_0x49b0('0x3f')]);var _0x3476b4={'where':_0x59195d[_0x49b0('0x3b')]};return db[_0x49b0('0x2c')][_0x49b0('0x1d')](_0x3476b4)[_0x49b0('0x26')](function(_0x3acb9d){_0x25c3cd['count']=_0x3acb9d;if(_0x3a7d31[_0x49b0('0x32')][_0x49b0('0x40')]){_0x59195d[_0x49b0('0x41')]=[{'all':!![]}];}return db[_0x49b0('0x2c')][_0x49b0('0x42')](_0x59195d);})[_0x49b0('0x26')](function(_0x119dd5){_0x25c3cd['rows']=_0x119dd5;return _0x25c3cd;})[_0x49b0('0x26')](respondWithFilteredResult(_0x1fc3cd,_0x59195d))[_0x49b0('0x43')](handleError(_0x1fc3cd,null));};exports[_0x49b0('0x44')]=function(_0x1d1008,_0xaa00a8){var _0x5e9b46={'raw':![],'where':{'id':_0x1d1008[_0x49b0('0x45')]['id']}},_0x120117={};_0x120117[_0x49b0('0x31')]=_[_0x49b0('0x46')](db['DeskAccount'][_0x49b0('0x2d')]);_0x120117['query']=_[_0x49b0('0x46')](_0x1d1008[_0x49b0('0x32')]);_0x120117[_0x49b0('0x33')]=_[_0x49b0('0x34')](_0x120117[_0x49b0('0x31')],_0x120117[_0x49b0('0x32')]);_0x5e9b46[_0x49b0('0x35')]=_[_0x49b0('0x34')](_0x120117['model'],qs[_0x49b0('0x36')](_0x1d1008[_0x49b0('0x32')][_0x49b0('0x36')]));_0x5e9b46[_0x49b0('0x35')]=_0x5e9b46[_0x49b0('0x35')][_0x49b0('0x47')]?_0x5e9b46[_0x49b0('0x35')]:_0x120117[_0x49b0('0x31')];if(_0x1d1008[_0x49b0('0x32')]['includeAll']){_0x5e9b46[_0x49b0('0x41')]=[{'all':!![]}];}_0x5e9b46=_['merge']({},_0x5e9b46,_0x1d1008[_0x49b0('0x3f')]);return db[_0x49b0('0x2c')]['find'](_0x5e9b46)[_0x49b0('0x26')](handleEntityNotFound(_0xaa00a8,null))[_0x49b0('0x26')](respondWithResult(_0xaa00a8,null))['catch'](handleError(_0xaa00a8,null));};exports['create']=function(_0x1354e0,_0x424083){return db[_0x49b0('0x2c')]['create'](_0x1354e0['body'],{})[_0x49b0('0x26')](respondWithResult(_0x424083,0xc9))['catch'](handleError(_0x424083,null));};exports['update']=function(_0x377caa,_0x4e1d87){if(_0x377caa[_0x49b0('0x48')]['id']){delete _0x377caa[_0x49b0('0x48')]['id'];}return db[_0x49b0('0x2c')][_0x49b0('0x49')]({'where':{'id':_0x377caa[_0x49b0('0x45')]['id']}})[_0x49b0('0x26')](handleEntityNotFound(_0x4e1d87,null))[_0x49b0('0x26')](saveUpdates(_0x377caa['body'],null))['then'](respondWithResult(_0x4e1d87,null))['catch'](handleError(_0x4e1d87,null));};exports[_0x49b0('0x4a')]=function(_0x321574,_0x3f7b1a){return db[_0x49b0('0x2c')][_0x49b0('0x49')]({'where':{'id':_0x321574['params']['id']}})[_0x49b0('0x26')](handleEntityNotFound(_0x3f7b1a,null))[_0x49b0('0x26')](removeEntity(_0x3f7b1a,null))[_0x49b0('0x43')](handleError(_0x3f7b1a,null));};exports[_0x49b0('0x4b')]=function(_0x17eeb4,_0x1a8144,_0x1dec74){var _0x3c7b59={};var _0x15977e={};var _0x2c6c41;var _0xb9dfe8;return db['DeskAccount'][_0x49b0('0x4c')]({'where':{'id':_0x17eeb4[_0x49b0('0x45')]['id']}})[_0x49b0('0x26')](handleEntityNotFound(_0x1a8144,null))['then'](function(_0x356e99){if(_0x356e99){_0x2c6c41=_0x356e99;_0x15977e['model']=_[_0x49b0('0x46')](db[_0x49b0('0x4d')]['rawAttributes']);_0x15977e[_0x49b0('0x32')]=_[_0x49b0('0x46')](_0x17eeb4[_0x49b0('0x32')]);_0x15977e['filters']=_[_0x49b0('0x34')](_0x15977e[_0x49b0('0x31')],_0x15977e['query']);_0x3c7b59[_0x49b0('0x35')]=_[_0x49b0('0x34')](_0x15977e[_0x49b0('0x31')],qs[_0x49b0('0x36')](_0x17eeb4['query'][_0x49b0('0x36')]));_0x3c7b59[_0x49b0('0x35')]=_0x3c7b59['attributes'][_0x49b0('0x47')]?_0x3c7b59[_0x49b0('0x35')]:_0x15977e[_0x49b0('0x31')];_0x3c7b59['order']=qs[_0x49b0('0x3a')](_0x17eeb4[_0x49b0('0x32')][_0x49b0('0x3a')]);_0x3c7b59[_0x49b0('0x3b')]=qs[_0x49b0('0x33')](_[_0x49b0('0x3c')](_0x17eeb4[_0x49b0('0x32')],_0x15977e[_0x49b0('0x33')]));if(_0x17eeb4[_0x49b0('0x32')][_0x49b0('0x3d')]){_0x3c7b59[_0x49b0('0x3b')]=_['merge'](_0x3c7b59[_0x49b0('0x3b')],{'$or':_[_0x49b0('0x2b')](_0x3c7b59[_0x49b0('0x35')],function(_0x559e40){var _0x14791a={};_0x14791a[_0x559e40]={'$like':'%'+_0x17eeb4[_0x49b0('0x32')][_0x49b0('0x3d')]+'%'};return _0x14791a;})});}_0x3c7b59=_[_0x49b0('0x3e')]({},_0x3c7b59,_0x17eeb4[_0x49b0('0x3f')]);return _0x2c6c41['getConfigurations'](_0x3c7b59);}})['then'](function(_0x16fe24){if(_0x16fe24){_0xb9dfe8=_0x16fe24[_0x49b0('0x47')];if(!_0x17eeb4[_0x49b0('0x32')]['hasOwnProperty'](_0x49b0('0x38'))){_0x3c7b59[_0x49b0('0x1e')]=qs[_0x49b0('0x1e')](_0x17eeb4[_0x49b0('0x32')][_0x49b0('0x1e')]);_0x3c7b59[_0x49b0('0x1b')]=qs[_0x49b0('0x1b')](_0x17eeb4[_0x49b0('0x32')]['offset']);}return _0x2c6c41[_0x49b0('0x4b')](_0x3c7b59);}})[_0x49b0('0x26')](function(_0x3b1af7){if(_0x3b1af7){return _0x3b1af7?{'count':_0xb9dfe8,'rows':_0x3b1af7}:null;}})['then'](respondWithResult(_0x1a8144,null))['catch'](handleError(_0x1a8144,null));};exports[_0x49b0('0x4e')]=function(_0x43f696,_0x52a959,_0x44abd3){if(_0x43f696[_0x49b0('0x48')]['id']){delete _0x43f696[_0x49b0('0x48')]['id'];}return db[_0x49b0('0x2c')]['findOne']({'where':{'id':_0x43f696[_0x49b0('0x45')]['id']}})[_0x49b0('0x26')](handleEntityNotFound(_0x52a959,null))[_0x49b0('0x26')](function(_0xa49088){if(_0xa49088){_0x43f696[_0x49b0('0x48')][_0x49b0('0x4f')]=_0xa49088['id'];_0x43f696[_0x49b0('0x48')][_0x49b0('0x50')]=integrations[_0x49b0('0x51')](_0x43f696[_0x49b0('0x48')]['channel'],_0x43f696[_0x49b0('0x48')][_0x49b0('0x2f')]);_0x43f696['body'][_0x49b0('0x52')]=integrations['getDescriptions'](_0x43f696['body'][_0x49b0('0x53')],_0x43f696[_0x49b0('0x48')][_0x49b0('0x2f')]);return db[_0x49b0('0x4d')]['create'](_0x43f696[_0x49b0('0x48')],{'include':[{'model':db[_0x49b0('0x54')],'as':_0x49b0('0x50')},{'model':db[_0x49b0('0x54')],'as':_0x49b0('0x52')}]});}return null;})[_0x49b0('0x26')](respondWithResult(_0x52a959,null))['catch'](handleError(_0x52a959,null));};exports[_0x49b0('0x55')]=function(_0x61cd6a,_0x1cf3dc,_0x1dd6a5){var _0x9b33c=[{'name':_0x49b0('0x56'),'label':_0x49b0('0x56'),'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 _0x343fc2='';return db[_0x49b0('0x2c')]['findOne']({'where':{'id':_0x61cd6a[_0x49b0('0x45')]['id']},'attributes':['id','remoteUri',_0x49b0('0x57'),_0x49b0('0x58'),_0x49b0('0x59'),'consumerKey',_0x49b0('0x5a'),_0x49b0('0x5b'),_0x49b0('0x5c')]})[_0x49b0('0x26')](handleEntityNotFound(_0x1cf3dc,null))['then'](function(_0x250ea5){if(_0x250ea5){_0x343fc2=_0x250ea5['remoteUri'];var _0x52a874=_0x343fc2['slice'](-0x1);if(_0x52a874==='/'){_0x343fc2=_0x343fc2[_0x49b0('0x5d')](0x0,_0x343fc2['lastIndexOf'](_0x52a874));}var _0xa1abc8={'method':_0x49b0('0x5e'),'uri':util[_0x49b0('0x5f')](_0x49b0('0x60'),_0x343fc2),'headers':{'Content-Type':_0x49b0('0x61'),'Accept':_0x49b0('0x61')},'json':!![]};if(_0x250ea5[_0x49b0('0x57')]===_0x49b0('0x62')){_0xa1abc8[_0x49b0('0x63')][_0x49b0('0x64')]=util[_0x49b0('0x5f')](_0x49b0('0x65'),new Buffer(util[_0x49b0('0x5f')]('%s:%s',_0x250ea5['username'],_0x250ea5['password']))['toString'](_0x49b0('0x66')));}return rp(_0xa1abc8)['then'](function(_0xd846db){return _0x9b33c[_0x49b0('0x67')](_[_0x49b0('0x2b')](_0xd846db[_0x49b0('0x68')][_0x49b0('0x69')],function(_0x368181){return{'id':_0x368181[_0x49b0('0x28')],'name':_0x368181[_0x49b0('0x28')],'type':_0x368181['type'],'active':_0x368181[_0x49b0('0x6a')],'label':_0x368181[_0x49b0('0x6b')],'custom':!![]};}));});}})[_0x49b0('0x26')](function(_0x291787){return{'count':_0x291787['length'],'rows':_0x291787};})[_0x49b0('0x26')](respondWithResult(_0x1cf3dc,null))['catch'](function(_0x2a60e5){var _0x1abeea=_0x61cd6a[_0x49b0('0x32')]['test']?0x1f4:_0x2a60e5[_0x49b0('0x6c')]||0x1f4;logger[_0x49b0('0x6d')](_0x49b0('0x6e'),_0x49b0('0x55'),_0x1abeea,JSON['stringify'](_0x2a60e5));delete _0x2a60e5[_0x49b0('0x28')];if(_0x1abeea===0x191){_0x1abeea=0x190;}_0x1cf3dc[_0x49b0('0x1f')](_0x1abeea)['send'](_0x61cd6a[_0x49b0('0x32')][_0x49b0('0x6f')]?{'message':_0x49b0('0x70'),'statusCode':_0x2a60e5[_0x49b0('0x6c')]}:_0x2a60e5);});};