Built motion from commit 4ffc18b1.|2.6.31
[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 _0x8369=['hasOwnProperty','nolimit','order','sort','where','filters','filter','merge','include','findAll','rows','show','params','keys','length','includeAll','options','find','catch','create','body','getConfigurations','pick','findOne','AccountId','Subjects','Descriptions','getDescriptions','DeskConfiguration','DeskField','getFields','priority','remoteUri','authType','username','consumerKey','token','tokenSecret','substring','lastIndexOf','GET','format','application/json','basic','Authorization','Basic\x20%s','password','base64','concat','_embedded','entries','label','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','error','name','send','index','map','DeskAccount','fieldName','type','key','model','intersection','fields','query','attributes'];(function(_0x4a0b15,_0x54818b){var _0x54f515=function(_0x1338f2){while(--_0x1338f2){_0x4a0b15['push'](_0x4a0b15['shift']());}};_0x54f515(++_0x54818b);}(_0x8369,0x194));var _0x9836=function(_0x5503b1,_0x53ce51){_0x5503b1=_0x5503b1-0x0;var _0x6b7d11=_0x8369[_0x5503b1];return _0x6b7d11;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9836('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x9836('0x1'));var rp=require(_0x9836('0x2'));var moment=require(_0x9836('0x3'));var BPromise=require(_0x9836('0x4'));var Mustache=require(_0x9836('0x5'));var util=require(_0x9836('0x6'));var path=require(_0x9836('0x7'));var sox=require(_0x9836('0x8'));var csv=require(_0x9836('0x9'));var ejs=require(_0x9836('0xa'));var fs=require('fs');var fs_extra=require(_0x9836('0xb'));var _=require(_0x9836('0xc'));var squel=require(_0x9836('0xd'));var crypto=require(_0x9836('0xe'));var jsforce=require(_0x9836('0xf'));var deskjs=require(_0x9836('0x10'));var toCsv=require('to-csv');var querystring=require(_0x9836('0x11'));var Papa=require(_0x9836('0x12'));var Redis=require(_0x9836('0x13'));var authService=require(_0x9836('0x14'));var qs=require(_0x9836('0x15'));var as=require(_0x9836('0x16'));var hardwareService=require(_0x9836('0x17'));var logger=require(_0x9836('0x18'))(_0x9836('0x19'));var utils=require(_0x9836('0x1a'));var config=require(_0x9836('0x1b'));var licenseUtil=require(_0x9836('0x1c'));var db=require(_0x9836('0x1d'))['db'];var integrations=require(_0x9836('0x1e'));function respondWithStatusCode(_0xcf49e9,_0x4801b5){_0x4801b5=_0x4801b5||0xcc;return function(_0x58d8c3){if(_0x58d8c3){return _0xcf49e9[_0x9836('0x1f')](_0x4801b5);}return _0xcf49e9[_0x9836('0x20')](_0x4801b5)[_0x9836('0x21')]();};}function respondWithResult(_0x3c8661,_0x7c0a14){_0x7c0a14=_0x7c0a14||0xc8;return function(_0x11d5fa){if(_0x11d5fa){return _0x3c8661['status'](_0x7c0a14)[_0x9836('0x22')](_0x11d5fa);}};}function respondWithFilteredResult(_0x2dd059,_0x480f4b){return function(_0x48f1f4){if(_0x48f1f4){var _0x103e1c=typeof _0x480f4b[_0x9836('0x23')]===_0x9836('0x24')&&typeof _0x480f4b[_0x9836('0x25')]===_0x9836('0x24');var _0x47da55=_0x48f1f4[_0x9836('0x26')];var _0x3a8b2c=_0x103e1c?0x0:_0x480f4b[_0x9836('0x23')];var _0x17c3dc=_0x103e1c?_0x48f1f4[_0x9836('0x26')]:_0x480f4b[_0x9836('0x23')]+_0x480f4b[_0x9836('0x25')];var _0x7a7216;if(_0x17c3dc>=_0x47da55){_0x17c3dc=_0x47da55;_0x7a7216=0xc8;}else{_0x7a7216=0xce;}_0x2dd059['status'](_0x7a7216);return _0x2dd059[_0x9836('0x27')](_0x9836('0x28'),_0x3a8b2c+'-'+_0x17c3dc+'/'+_0x47da55)[_0x9836('0x22')](_0x48f1f4);}return null;};}function patchUpdates(_0x58f2ee){return function(_0x509269){try{jsonpatch[_0x9836('0x29')](_0x509269,_0x58f2ee,!![]);}catch(_0x26deef){return BPromise[_0x9836('0x2a')](_0x26deef);}return _0x509269[_0x9836('0x2b')]();};}function saveUpdates(_0xd9d2e8,_0x2a7bc8){return function(_0x535ee2){if(_0x535ee2){return _0x535ee2[_0x9836('0x2c')](_0xd9d2e8)[_0x9836('0x2d')](function(_0x1076ab){return _0x1076ab;});}return null;};}function removeEntity(_0x25dd4a,_0x337429){return function(_0x38aadc){if(_0x38aadc){return _0x38aadc['destroy']()['then'](function(){_0x25dd4a[_0x9836('0x20')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1c97cb,_0x2d489d){return function(_0x44d9a4){if(!_0x44d9a4){_0x1c97cb[_0x9836('0x1f')](0x194);}return _0x44d9a4;};}function handleError(_0x31e283,_0x1b7902){_0x1b7902=_0x1b7902||0x1f4;return function(_0x237655){logger[_0x9836('0x2e')](_0x237655['stack']);if(_0x237655['name']){delete _0x237655[_0x9836('0x2f')];}_0x31e283['status'](_0x1b7902)[_0x9836('0x30')](_0x237655);};}exports[_0x9836('0x31')]=function(_0xdb3dad,_0x4380ad){var _0x506e65={},_0xe62a13={},_0x396d50={'count':0x0,'rows':[]};var _0x3080b4=_[_0x9836('0x32')](db[_0x9836('0x33')]['rawAttributes'],function(_0x1cb3f7){return{'name':_0x1cb3f7[_0x9836('0x34')],'type':_0x1cb3f7[_0x9836('0x35')][_0x9836('0x36')]};});_0xe62a13[_0x9836('0x37')]=_['map'](_0x3080b4,'name');_0xe62a13['query']=_['keys'](_0xdb3dad['query']);_0xe62a13['filters']=_['intersection'](_0xe62a13[_0x9836('0x37')],_0xe62a13['query']);_0x506e65['attributes']=_[_0x9836('0x38')](_0xe62a13[_0x9836('0x37')],qs[_0x9836('0x39')](_0xdb3dad[_0x9836('0x3a')][_0x9836('0x39')]));_0x506e65[_0x9836('0x3b')]=_0x506e65[_0x9836('0x3b')]['length']?_0x506e65['attributes']:_0xe62a13[_0x9836('0x37')];if(!_0xdb3dad[_0x9836('0x3a')][_0x9836('0x3c')](_0x9836('0x3d'))){_0x506e65[_0x9836('0x25')]=qs['limit'](_0xdb3dad[_0x9836('0x3a')][_0x9836('0x25')]);_0x506e65[_0x9836('0x23')]=qs[_0x9836('0x23')](_0xdb3dad['query'][_0x9836('0x23')]);}_0x506e65[_0x9836('0x3e')]=qs[_0x9836('0x3f')](_0xdb3dad['query'][_0x9836('0x3f')]);_0x506e65[_0x9836('0x40')]=qs[_0x9836('0x41')](_['pick'](_0xdb3dad['query'],_0xe62a13[_0x9836('0x41')]),_0x3080b4);if(_0xdb3dad[_0x9836('0x3a')][_0x9836('0x42')]){_0x506e65[_0x9836('0x40')]=_[_0x9836('0x43')](_0x506e65[_0x9836('0x40')],{'$or':_[_0x9836('0x32')](_0x3080b4,function(_0x203435){if(_0x203435[_0x9836('0x35')]!=='VIRTUAL'){var _0x553ce3={};_0x553ce3[_0x203435[_0x9836('0x2f')]]={'$like':'%'+_0xdb3dad[_0x9836('0x3a')]['filter']+'%'};return _0x553ce3;}})});}_0x506e65=_[_0x9836('0x43')]({},_0x506e65,_0xdb3dad['options']);var _0x52e45d={'where':_0x506e65['where']};return db[_0x9836('0x33')][_0x9836('0x26')](_0x52e45d)[_0x9836('0x2d')](function(_0x2d9ec5){_0x396d50['count']=_0x2d9ec5;if(_0xdb3dad['query']['includeAll']){_0x506e65[_0x9836('0x44')]=[{'all':!![]}];}return db[_0x9836('0x33')][_0x9836('0x45')](_0x506e65);})[_0x9836('0x2d')](function(_0x5f0c3f){_0x396d50[_0x9836('0x46')]=_0x5f0c3f;return _0x396d50;})['then'](respondWithFilteredResult(_0x4380ad,_0x506e65))['catch'](handleError(_0x4380ad,null));};exports[_0x9836('0x47')]=function(_0x22b6f4,_0x1c5a64){var _0x5a36aa={'raw':![],'where':{'id':_0x22b6f4[_0x9836('0x48')]['id']}},_0x3ff067={};_0x3ff067[_0x9836('0x37')]=_[_0x9836('0x49')](db['DeskAccount']['rawAttributes']);_0x3ff067[_0x9836('0x3a')]=_[_0x9836('0x49')](_0x22b6f4['query']);_0x3ff067[_0x9836('0x41')]=_[_0x9836('0x38')](_0x3ff067[_0x9836('0x37')],_0x3ff067[_0x9836('0x3a')]);_0x5a36aa[_0x9836('0x3b')]=_[_0x9836('0x38')](_0x3ff067['model'],qs[_0x9836('0x39')](_0x22b6f4[_0x9836('0x3a')][_0x9836('0x39')]));_0x5a36aa[_0x9836('0x3b')]=_0x5a36aa['attributes'][_0x9836('0x4a')]?_0x5a36aa[_0x9836('0x3b')]:_0x3ff067[_0x9836('0x37')];if(_0x22b6f4[_0x9836('0x3a')][_0x9836('0x4b')]){_0x5a36aa[_0x9836('0x44')]=[{'all':!![]}];}_0x5a36aa=_[_0x9836('0x43')]({},_0x5a36aa,_0x22b6f4[_0x9836('0x4c')]);return db['DeskAccount'][_0x9836('0x4d')](_0x5a36aa)[_0x9836('0x2d')](handleEntityNotFound(_0x1c5a64,null))[_0x9836('0x2d')](respondWithResult(_0x1c5a64,null))[_0x9836('0x4e')](handleError(_0x1c5a64,null));};exports[_0x9836('0x4f')]=function(_0x55090f,_0x5a104c){return db[_0x9836('0x33')]['create'](_0x55090f[_0x9836('0x50')],{})[_0x9836('0x2d')](respondWithResult(_0x5a104c,0xc9))[_0x9836('0x4e')](handleError(_0x5a104c,null));};exports['update']=function(_0x526dc0,_0x238e29){if(_0x526dc0['body']['id']){delete _0x526dc0[_0x9836('0x50')]['id'];}return db[_0x9836('0x33')][_0x9836('0x4d')]({'where':{'id':_0x526dc0['params']['id']}})[_0x9836('0x2d')](handleEntityNotFound(_0x238e29,null))[_0x9836('0x2d')](saveUpdates(_0x526dc0[_0x9836('0x50')],null))[_0x9836('0x2d')](respondWithResult(_0x238e29,null))['catch'](handleError(_0x238e29,null));};exports['destroy']=function(_0x291503,_0x3af32a){return db[_0x9836('0x33')]['find']({'where':{'id':_0x291503[_0x9836('0x48')]['id']}})[_0x9836('0x2d')](handleEntityNotFound(_0x3af32a,null))[_0x9836('0x2d')](removeEntity(_0x3af32a,null))[_0x9836('0x4e')](handleError(_0x3af32a,null));};exports[_0x9836('0x51')]=function(_0x519547,_0x296533,_0x65987e){var _0x535c1f={};var _0x2c3044={};var _0x848f2c;var _0x4102c1;return db[_0x9836('0x33')]['findOne']({'where':{'id':_0x519547[_0x9836('0x48')]['id']}})[_0x9836('0x2d')](handleEntityNotFound(_0x296533,null))[_0x9836('0x2d')](function(_0x2112be){if(_0x2112be){_0x848f2c=_0x2112be;_0x2c3044[_0x9836('0x37')]=_[_0x9836('0x49')](db['DeskConfiguration']['rawAttributes']);_0x2c3044['query']=_[_0x9836('0x49')](_0x519547[_0x9836('0x3a')]);_0x2c3044['filters']=_[_0x9836('0x38')](_0x2c3044[_0x9836('0x37')],_0x2c3044[_0x9836('0x3a')]);_0x535c1f[_0x9836('0x3b')]=_[_0x9836('0x38')](_0x2c3044[_0x9836('0x37')],qs['fields'](_0x519547[_0x9836('0x3a')][_0x9836('0x39')]));_0x535c1f[_0x9836('0x3b')]=_0x535c1f[_0x9836('0x3b')][_0x9836('0x4a')]?_0x535c1f['attributes']:_0x2c3044[_0x9836('0x37')];_0x535c1f['order']=qs[_0x9836('0x3f')](_0x519547['query'][_0x9836('0x3f')]);_0x535c1f[_0x9836('0x40')]=qs[_0x9836('0x41')](_[_0x9836('0x52')](_0x519547[_0x9836('0x3a')],_0x2c3044[_0x9836('0x41')]));if(_0x519547[_0x9836('0x3a')]['filter']){_0x535c1f[_0x9836('0x40')]=_[_0x9836('0x43')](_0x535c1f[_0x9836('0x40')],{'$or':_['map'](_0x535c1f['attributes'],function(_0x2993e3){var _0xa6916a={};_0xa6916a[_0x2993e3]={'$like':'%'+_0x519547[_0x9836('0x3a')]['filter']+'%'};return _0xa6916a;})});}_0x535c1f=_[_0x9836('0x43')]({},_0x535c1f,_0x519547['options']);return _0x848f2c['getConfigurations'](_0x535c1f);}})['then'](function(_0x39d09a){if(_0x39d09a){_0x4102c1=_0x39d09a[_0x9836('0x4a')];if(!_0x519547[_0x9836('0x3a')]['hasOwnProperty']('nolimit')){_0x535c1f[_0x9836('0x25')]=qs[_0x9836('0x25')](_0x519547[_0x9836('0x3a')][_0x9836('0x25')]);_0x535c1f['offset']=qs['offset'](_0x519547['query'][_0x9836('0x23')]);}return _0x848f2c[_0x9836('0x51')](_0x535c1f);}})[_0x9836('0x2d')](function(_0x433cc8){if(_0x433cc8){return _0x433cc8?{'count':_0x4102c1,'rows':_0x433cc8}:null;}})['then'](respondWithResult(_0x296533,null))[_0x9836('0x4e')](handleError(_0x296533,null));};exports['addConfiguration']=function(_0x2bef4a,_0x4104b5,_0x4f1245){if(_0x2bef4a['body']['id']){delete _0x2bef4a[_0x9836('0x50')]['id'];}return db[_0x9836('0x33')][_0x9836('0x53')]({'where':{'id':_0x2bef4a[_0x9836('0x48')]['id']}})[_0x9836('0x2d')](handleEntityNotFound(_0x4104b5,null))[_0x9836('0x2d')](function(_0x41aec5){if(_0x41aec5){_0x2bef4a[_0x9836('0x50')][_0x9836('0x54')]=_0x41aec5['id'];_0x2bef4a[_0x9836('0x50')][_0x9836('0x55')]=integrations['getSubjects'](_0x2bef4a[_0x9836('0x50')]['channel'],_0x2bef4a[_0x9836('0x50')][_0x9836('0x35')]);_0x2bef4a[_0x9836('0x50')][_0x9836('0x56')]=integrations[_0x9836('0x57')](_0x2bef4a[_0x9836('0x50')]['channel'],_0x2bef4a[_0x9836('0x50')][_0x9836('0x35')]);return db[_0x9836('0x58')][_0x9836('0x4f')](_0x2bef4a[_0x9836('0x50')],{'include':[{'model':db[_0x9836('0x59')],'as':_0x9836('0x55')},{'model':db[_0x9836('0x59')],'as':_0x9836('0x56')}]});}return null;})[_0x9836('0x2d')](respondWithResult(_0x4104b5,null))[_0x9836('0x4e')](handleError(_0x4104b5,null));};exports[_0x9836('0x5a')]=function(_0x294640,_0xcab032,_0x5f4994){var _0x15e03c=[{'name':_0x9836('0x5b'),'label':_0x9836('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 _0x535f3d='';return db[_0x9836('0x33')][_0x9836('0x53')]({'where':{'id':_0x294640[_0x9836('0x48')]['id']},'attributes':['id',_0x9836('0x5c'),_0x9836('0x5d'),_0x9836('0x5e'),'password',_0x9836('0x5f'),'consumerSecret',_0x9836('0x60'),_0x9836('0x61')]})[_0x9836('0x2d')](handleEntityNotFound(_0xcab032,null))[_0x9836('0x2d')](function(_0x4e533a){if(_0x4e533a){_0x535f3d=_0x4e533a['remoteUri'];var _0x2f5656=_0x535f3d['slice'](-0x1);if(_0x2f5656==='/'){_0x535f3d=_0x535f3d[_0x9836('0x62')](0x0,_0x535f3d[_0x9836('0x63')](_0x2f5656));}var _0x5ec43d={'method':_0x9836('0x64'),'uri':util[_0x9836('0x65')]('%s/custom_fields',_0x535f3d),'headers':{'Content-Type':_0x9836('0x66'),'Accept':_0x9836('0x66')},'json':!![]};if(_0x4e533a['authType']===_0x9836('0x67')){_0x5ec43d['headers'][_0x9836('0x68')]=util[_0x9836('0x65')](_0x9836('0x69'),new Buffer(util[_0x9836('0x65')]('%s:%s',_0x4e533a[_0x9836('0x5e')],_0x4e533a[_0x9836('0x6a')]))['toString'](_0x9836('0x6b')));}return rp(_0x5ec43d)[_0x9836('0x2d')](function(_0x17f68a){return _0x15e03c[_0x9836('0x6c')](_[_0x9836('0x32')](_0x17f68a[_0x9836('0x6d')][_0x9836('0x6e')],function(_0x1ab6d0){return{'id':_0x1ab6d0[_0x9836('0x2f')],'name':_0x1ab6d0[_0x9836('0x2f')],'type':_0x1ab6d0['type'],'active':_0x1ab6d0['active'],'label':_0x1ab6d0[_0x9836('0x6f')],'custom':!![]};}));});}})[_0x9836('0x2d')](function(_0x2a44a2){return{'count':_0x2a44a2['length'],'rows':_0x2a44a2};})[_0x9836('0x2d')](respondWithResult(_0xcab032,null))[_0x9836('0x4e')](function(_0x4116d3){var _0xd88dd=_0x294640['query'][_0x9836('0x70')]?0x1f4:_0x4116d3[_0x9836('0x71')]||0x1f4;logger[_0x9836('0x2e')](_0x9836('0x72'),_0x9836('0x5a'),_0xd88dd,JSON['stringify'](_0x4116d3));delete _0x4116d3['name'];if(_0xd88dd===0x191){_0xd88dd=0x190;}_0xcab032[_0x9836('0x20')](_0xd88dd)[_0x9836('0x30')](_0x294640[_0x9836('0x3a')][_0x9836('0x70')]?{'message':_0x9836('0x73'),'statusCode':_0x4116d3['statusCode']}:_0x4116d3);});};