Built motion from commit 37e1ed56.|2.6.29
[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 _0xe6cf=['bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../components/integrations/configuration','sendStatus','end','json','limit','undefined','offset','count','status','set','apply','reject','save','update','then','error','name','send','index','rawAttributes','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','pick','filter','map','VIRTUAL','merge','options','includeAll','include','rows','show','params','DeskAccount','find','catch','body','destroy','findOne','order','getConfigurations','addConfiguration','AccountId','Subjects','getSubjects','Descriptions','getDescriptions','channel','DeskConfiguration','create','DeskField','getFields','priority','remoteUri','authType','username','consumerKey','consumerSecret','token','tokenSecret','slice','substring','lastIndexOf','format','%s/custom_fields','application/json','headers','Authorization','Basic\x20%s','%s:%s','password','toString','base64','concat','entries','active','label','test','statusCode','stringify','Wrong\x20credentials','rimraf','zip-dir','request-promise','moment'];(function(_0x484e36,_0x4482d8){var _0xafc85d=function(_0xaba9c8){while(--_0xaba9c8){_0x484e36['push'](_0x484e36['shift']());}};_0xafc85d(++_0x4482d8);}(_0xe6cf,0x72));var _0xfe6c=function(_0x2697d9,_0x26806a){_0x2697d9=_0x2697d9-0x0;var _0x25e6ae=_0xe6cf[_0x2697d9];return _0x25e6ae;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xfe6c('0x0'));var zipdir=require(_0xfe6c('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xfe6c('0x2'));var moment=require(_0xfe6c('0x3'));var BPromise=require(_0xfe6c('0x4'));var Mustache=require(_0xfe6c('0x5'));var util=require(_0xfe6c('0x6'));var path=require(_0xfe6c('0x7'));var sox=require(_0xfe6c('0x8'));var csv=require(_0xfe6c('0x9'));var ejs=require(_0xfe6c('0xa'));var fs=require('fs');var fs_extra=require(_0xfe6c('0xb'));var _=require(_0xfe6c('0xc'));var squel=require(_0xfe6c('0xd'));var crypto=require(_0xfe6c('0xe'));var jsforce=require('jsforce');var deskjs=require(_0xfe6c('0xf'));var toCsv=require(_0xfe6c('0x9'));var querystring=require(_0xfe6c('0x10'));var Papa=require(_0xfe6c('0x11'));var Redis=require(_0xfe6c('0x12'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xfe6c('0x13'));var logger=require(_0xfe6c('0x14'))(_0xfe6c('0x15'));var utils=require(_0xfe6c('0x16'));var config=require(_0xfe6c('0x17'));var licenseUtil=require(_0xfe6c('0x18'));var db=require('../../mysqldb')['db'];var integrations=require(_0xfe6c('0x19'));function respondWithStatusCode(_0x33e19e,_0x135a7d){_0x135a7d=_0x135a7d||0xcc;return function(_0x46da1f){if(_0x46da1f){return _0x33e19e[_0xfe6c('0x1a')](_0x135a7d);}return _0x33e19e['status'](_0x135a7d)[_0xfe6c('0x1b')]();};}function respondWithResult(_0x47f982,_0x5c6921){_0x5c6921=_0x5c6921||0xc8;return function(_0x5253f4){if(_0x5253f4){return _0x47f982['status'](_0x5c6921)[_0xfe6c('0x1c')](_0x5253f4);}};}function respondWithFilteredResult(_0x20f4ae,_0x41c90e){return function(_0x2090f3){if(_0x2090f3){var _0x59ce4b=typeof _0x41c90e['offset']==='undefined'&&typeof _0x41c90e[_0xfe6c('0x1d')]===_0xfe6c('0x1e');var _0x490723=_0x2090f3['count'];var _0x330f2f=_0x59ce4b?0x0:_0x41c90e[_0xfe6c('0x1f')];var _0x19d24d=_0x59ce4b?_0x2090f3[_0xfe6c('0x20')]:_0x41c90e[_0xfe6c('0x1f')]+_0x41c90e['limit'];var _0xcfde2b;if(_0x19d24d>=_0x490723){_0x19d24d=_0x490723;_0xcfde2b=0xc8;}else{_0xcfde2b=0xce;}_0x20f4ae[_0xfe6c('0x21')](_0xcfde2b);return _0x20f4ae[_0xfe6c('0x22')]('Content-Range',_0x330f2f+'-'+_0x19d24d+'/'+_0x490723)['json'](_0x2090f3);}return null;};}function patchUpdates(_0x4c6374){return function(_0x139e09){try{jsonpatch[_0xfe6c('0x23')](_0x139e09,_0x4c6374,!![]);}catch(_0xec6dc6){return BPromise[_0xfe6c('0x24')](_0xec6dc6);}return _0x139e09[_0xfe6c('0x25')]();};}function saveUpdates(_0x223c9c,_0x11f9a2){return function(_0x3d31e2){if(_0x3d31e2){return _0x3d31e2[_0xfe6c('0x26')](_0x223c9c)[_0xfe6c('0x27')](function(_0x3a7a26){return _0x3a7a26;});}return null;};}function removeEntity(_0x45e057,_0x4fa5a1){return function(_0x3fac61){if(_0x3fac61){return _0x3fac61['destroy']()[_0xfe6c('0x27')](function(){_0x45e057['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x56cb4b,_0x52182b){return function(_0x469aae){if(!_0x469aae){_0x56cb4b[_0xfe6c('0x1a')](0x194);}return _0x469aae;};}function handleError(_0x3d3ca6,_0x5e33dd){_0x5e33dd=_0x5e33dd||0x1f4;return function(_0x12e9cd){logger[_0xfe6c('0x28')](_0x12e9cd['stack']);if(_0x12e9cd[_0xfe6c('0x29')]){delete _0x12e9cd[_0xfe6c('0x29')];}_0x3d3ca6['status'](_0x5e33dd)[_0xfe6c('0x2a')](_0x12e9cd);};}exports[_0xfe6c('0x2b')]=function(_0x5cb3fb,_0x316d94){var _0x246d6f={},_0x10881c={},_0x216398={'count':0x0,'rows':[]};var _0xe168f7=_['map'](db['DeskAccount'][_0xfe6c('0x2c')],function(_0x5d2131){return{'name':_0x5d2131['fieldName'],'type':_0x5d2131[_0xfe6c('0x2d')][_0xfe6c('0x2e')]};});_0x10881c[_0xfe6c('0x2f')]=_['map'](_0xe168f7,_0xfe6c('0x29'));_0x10881c[_0xfe6c('0x30')]=_[_0xfe6c('0x31')](_0x5cb3fb[_0xfe6c('0x30')]);_0x10881c[_0xfe6c('0x32')]=_['intersection'](_0x10881c['model'],_0x10881c['query']);_0x246d6f['attributes']=_[_0xfe6c('0x33')](_0x10881c[_0xfe6c('0x2f')],qs['fields'](_0x5cb3fb[_0xfe6c('0x30')][_0xfe6c('0x34')]));_0x246d6f['attributes']=_0x246d6f[_0xfe6c('0x35')][_0xfe6c('0x36')]?_0x246d6f[_0xfe6c('0x35')]:_0x10881c[_0xfe6c('0x2f')];if(!_0x5cb3fb[_0xfe6c('0x30')][_0xfe6c('0x37')](_0xfe6c('0x38'))){_0x246d6f[_0xfe6c('0x1d')]=qs[_0xfe6c('0x1d')](_0x5cb3fb['query'][_0xfe6c('0x1d')]);_0x246d6f[_0xfe6c('0x1f')]=qs[_0xfe6c('0x1f')](_0x5cb3fb[_0xfe6c('0x30')][_0xfe6c('0x1f')]);}_0x246d6f['order']=qs[_0xfe6c('0x39')](_0x5cb3fb[_0xfe6c('0x30')][_0xfe6c('0x39')]);_0x246d6f[_0xfe6c('0x3a')]=qs[_0xfe6c('0x32')](_[_0xfe6c('0x3b')](_0x5cb3fb[_0xfe6c('0x30')],_0x10881c['filters']),_0xe168f7);if(_0x5cb3fb['query'][_0xfe6c('0x3c')]){_0x246d6f[_0xfe6c('0x3a')]=_['merge'](_0x246d6f[_0xfe6c('0x3a')],{'$or':_[_0xfe6c('0x3d')](_0xe168f7,function(_0x2fb725){if(_0x2fb725[_0xfe6c('0x2d')]!==_0xfe6c('0x3e')){var _0x25bb7a={};_0x25bb7a[_0x2fb725[_0xfe6c('0x29')]]={'$like':'%'+_0x5cb3fb[_0xfe6c('0x30')][_0xfe6c('0x3c')]+'%'};return _0x25bb7a;}})});}_0x246d6f=_[_0xfe6c('0x3f')]({},_0x246d6f,_0x5cb3fb[_0xfe6c('0x40')]);var _0x1a3e42={'where':_0x246d6f[_0xfe6c('0x3a')]};return db['DeskAccount'][_0xfe6c('0x20')](_0x1a3e42)[_0xfe6c('0x27')](function(_0x53b031){_0x216398['count']=_0x53b031;if(_0x5cb3fb[_0xfe6c('0x30')][_0xfe6c('0x41')]){_0x246d6f[_0xfe6c('0x42')]=[{'all':!![]}];}return db['DeskAccount']['findAll'](_0x246d6f);})[_0xfe6c('0x27')](function(_0x31ec77){_0x216398[_0xfe6c('0x43')]=_0x31ec77;return _0x216398;})[_0xfe6c('0x27')](respondWithFilteredResult(_0x316d94,_0x246d6f))['catch'](handleError(_0x316d94,null));};exports[_0xfe6c('0x44')]=function(_0x7c64e3,_0x448435){var _0x14f6f8={'raw':![],'where':{'id':_0x7c64e3[_0xfe6c('0x45')]['id']}},_0x31e49b={};_0x31e49b[_0xfe6c('0x2f')]=_['keys'](db[_0xfe6c('0x46')]['rawAttributes']);_0x31e49b[_0xfe6c('0x30')]=_[_0xfe6c('0x31')](_0x7c64e3['query']);_0x31e49b['filters']=_[_0xfe6c('0x33')](_0x31e49b[_0xfe6c('0x2f')],_0x31e49b['query']);_0x14f6f8[_0xfe6c('0x35')]=_[_0xfe6c('0x33')](_0x31e49b[_0xfe6c('0x2f')],qs[_0xfe6c('0x34')](_0x7c64e3[_0xfe6c('0x30')][_0xfe6c('0x34')]));_0x14f6f8[_0xfe6c('0x35')]=_0x14f6f8['attributes'][_0xfe6c('0x36')]?_0x14f6f8['attributes']:_0x31e49b['model'];if(_0x7c64e3[_0xfe6c('0x30')]['includeAll']){_0x14f6f8[_0xfe6c('0x42')]=[{'all':!![]}];}_0x14f6f8=_[_0xfe6c('0x3f')]({},_0x14f6f8,_0x7c64e3[_0xfe6c('0x40')]);return db['DeskAccount'][_0xfe6c('0x47')](_0x14f6f8)[_0xfe6c('0x27')](handleEntityNotFound(_0x448435,null))[_0xfe6c('0x27')](respondWithResult(_0x448435,null))[_0xfe6c('0x48')](handleError(_0x448435,null));};exports['create']=function(_0x3e20f4,_0x57a0e0){return db[_0xfe6c('0x46')]['create'](_0x3e20f4[_0xfe6c('0x49')],{})[_0xfe6c('0x27')](respondWithResult(_0x57a0e0,0xc9))[_0xfe6c('0x48')](handleError(_0x57a0e0,null));};exports[_0xfe6c('0x26')]=function(_0x587c42,_0x641b8c){if(_0x587c42[_0xfe6c('0x49')]['id']){delete _0x587c42['body']['id'];}return db[_0xfe6c('0x46')][_0xfe6c('0x47')]({'where':{'id':_0x587c42['params']['id']}})[_0xfe6c('0x27')](handleEntityNotFound(_0x641b8c,null))[_0xfe6c('0x27')](saveUpdates(_0x587c42[_0xfe6c('0x49')],null))[_0xfe6c('0x27')](respondWithResult(_0x641b8c,null))[_0xfe6c('0x48')](handleError(_0x641b8c,null));};exports[_0xfe6c('0x4a')]=function(_0x294c78,_0x10888b){return db[_0xfe6c('0x46')]['find']({'where':{'id':_0x294c78[_0xfe6c('0x45')]['id']}})[_0xfe6c('0x27')](handleEntityNotFound(_0x10888b,null))[_0xfe6c('0x27')](removeEntity(_0x10888b,null))['catch'](handleError(_0x10888b,null));};exports['getConfigurations']=function(_0x768e18,_0x93f9bc,_0x5d40d4){var _0xc6d644={};var _0xe67d63={};var _0x15046a;var _0xf3880d;return db[_0xfe6c('0x46')][_0xfe6c('0x4b')]({'where':{'id':_0x768e18[_0xfe6c('0x45')]['id']}})['then'](handleEntityNotFound(_0x93f9bc,null))[_0xfe6c('0x27')](function(_0x3afae2){if(_0x3afae2){_0x15046a=_0x3afae2;_0xe67d63[_0xfe6c('0x2f')]=_['keys'](db['DeskConfiguration'][_0xfe6c('0x2c')]);_0xe67d63[_0xfe6c('0x30')]=_['keys'](_0x768e18['query']);_0xe67d63[_0xfe6c('0x32')]=_[_0xfe6c('0x33')](_0xe67d63['model'],_0xe67d63[_0xfe6c('0x30')]);_0xc6d644[_0xfe6c('0x35')]=_[_0xfe6c('0x33')](_0xe67d63['model'],qs[_0xfe6c('0x34')](_0x768e18['query'][_0xfe6c('0x34')]));_0xc6d644[_0xfe6c('0x35')]=_0xc6d644[_0xfe6c('0x35')]['length']?_0xc6d644[_0xfe6c('0x35')]:_0xe67d63['model'];_0xc6d644[_0xfe6c('0x4c')]=qs[_0xfe6c('0x39')](_0x768e18[_0xfe6c('0x30')][_0xfe6c('0x39')]);_0xc6d644['where']=qs[_0xfe6c('0x32')](_['pick'](_0x768e18[_0xfe6c('0x30')],_0xe67d63[_0xfe6c('0x32')]));if(_0x768e18['query'][_0xfe6c('0x3c')]){_0xc6d644['where']=_[_0xfe6c('0x3f')](_0xc6d644[_0xfe6c('0x3a')],{'$or':_[_0xfe6c('0x3d')](_0xc6d644[_0xfe6c('0x35')],function(_0x441902){var _0x42864b={};_0x42864b[_0x441902]={'$like':'%'+_0x768e18[_0xfe6c('0x30')]['filter']+'%'};return _0x42864b;})});}_0xc6d644=_[_0xfe6c('0x3f')]({},_0xc6d644,_0x768e18[_0xfe6c('0x40')]);return _0x15046a[_0xfe6c('0x4d')](_0xc6d644);}})[_0xfe6c('0x27')](function(_0xd85cd7){if(_0xd85cd7){_0xf3880d=_0xd85cd7[_0xfe6c('0x36')];if(!_0x768e18[_0xfe6c('0x30')][_0xfe6c('0x37')](_0xfe6c('0x38'))){_0xc6d644[_0xfe6c('0x1d')]=qs['limit'](_0x768e18[_0xfe6c('0x30')][_0xfe6c('0x1d')]);_0xc6d644[_0xfe6c('0x1f')]=qs[_0xfe6c('0x1f')](_0x768e18[_0xfe6c('0x30')][_0xfe6c('0x1f')]);}return _0x15046a['getConfigurations'](_0xc6d644);}})[_0xfe6c('0x27')](function(_0xedbab8){if(_0xedbab8){return _0xedbab8?{'count':_0xf3880d,'rows':_0xedbab8}:null;}})[_0xfe6c('0x27')](respondWithResult(_0x93f9bc,null))[_0xfe6c('0x48')](handleError(_0x93f9bc,null));};exports[_0xfe6c('0x4e')]=function(_0x60e875,_0x11b064,_0x1c3b1f){if(_0x60e875[_0xfe6c('0x49')]['id']){delete _0x60e875['body']['id'];}return db[_0xfe6c('0x46')][_0xfe6c('0x4b')]({'where':{'id':_0x60e875['params']['id']}})[_0xfe6c('0x27')](handleEntityNotFound(_0x11b064,null))['then'](function(_0x185557){if(_0x185557){_0x60e875[_0xfe6c('0x49')][_0xfe6c('0x4f')]=_0x185557['id'];_0x60e875[_0xfe6c('0x49')][_0xfe6c('0x50')]=integrations[_0xfe6c('0x51')](_0x60e875['body']['channel'],_0x60e875['body'][_0xfe6c('0x2d')]);_0x60e875['body'][_0xfe6c('0x52')]=integrations[_0xfe6c('0x53')](_0x60e875[_0xfe6c('0x49')][_0xfe6c('0x54')],_0x60e875[_0xfe6c('0x49')]['type']);return db[_0xfe6c('0x55')][_0xfe6c('0x56')](_0x60e875[_0xfe6c('0x49')],{'include':[{'model':db[_0xfe6c('0x57')],'as':_0xfe6c('0x50')},{'model':db[_0xfe6c('0x57')],'as':_0xfe6c('0x52')}]});}return null;})[_0xfe6c('0x27')](respondWithResult(_0x11b064,null))[_0xfe6c('0x48')](handleError(_0x11b064,null));};exports[_0xfe6c('0x58')]=function(_0x33c15d,_0x128de2,_0x32119c){var _0x4e5435=[{'name':_0xfe6c('0x59'),'label':_0xfe6c('0x59'),'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 _0x1c9877='';return db[_0xfe6c('0x46')]['findOne']({'where':{'id':_0x33c15d[_0xfe6c('0x45')]['id']},'attributes':['id',_0xfe6c('0x5a'),_0xfe6c('0x5b'),_0xfe6c('0x5c'),'password',_0xfe6c('0x5d'),_0xfe6c('0x5e'),_0xfe6c('0x5f'),_0xfe6c('0x60')]})[_0xfe6c('0x27')](handleEntityNotFound(_0x128de2,null))[_0xfe6c('0x27')](function(_0x5a0f05){if(_0x5a0f05){_0x1c9877=_0x5a0f05[_0xfe6c('0x5a')];var _0x4d16b7=_0x1c9877[_0xfe6c('0x61')](-0x1);if(_0x4d16b7==='/'){_0x1c9877=_0x1c9877[_0xfe6c('0x62')](0x0,_0x1c9877[_0xfe6c('0x63')](_0x4d16b7));}var _0x1def88={'method':'GET','uri':util[_0xfe6c('0x64')](_0xfe6c('0x65'),_0x1c9877),'headers':{'Content-Type':'application/json','Accept':_0xfe6c('0x66')},'json':!![]};if(_0x5a0f05[_0xfe6c('0x5b')]==='basic'){_0x1def88[_0xfe6c('0x67')][_0xfe6c('0x68')]=util[_0xfe6c('0x64')](_0xfe6c('0x69'),new Buffer(util[_0xfe6c('0x64')](_0xfe6c('0x6a'),_0x5a0f05[_0xfe6c('0x5c')],_0x5a0f05[_0xfe6c('0x6b')]))[_0xfe6c('0x6c')](_0xfe6c('0x6d')));}return rp(_0x1def88)[_0xfe6c('0x27')](function(_0x49b4e8){return _0x4e5435[_0xfe6c('0x6e')](_[_0xfe6c('0x3d')](_0x49b4e8['_embedded'][_0xfe6c('0x6f')],function(_0x4079cb){return{'id':_0x4079cb['name'],'name':_0x4079cb[_0xfe6c('0x29')],'type':_0x4079cb[_0xfe6c('0x2d')],'active':_0x4079cb[_0xfe6c('0x70')],'label':_0x4079cb[_0xfe6c('0x71')],'custom':!![]};}));});}})[_0xfe6c('0x27')](function(_0x1354ac){return{'count':_0x1354ac['length'],'rows':_0x1354ac};})[_0xfe6c('0x27')](respondWithResult(_0x128de2,null))[_0xfe6c('0x48')](function(_0x2d3b40){var _0x5a2c21=_0x33c15d['query'][_0xfe6c('0x72')]?0x1f4:_0x2d3b40[_0xfe6c('0x73')]||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s','getFields',_0x5a2c21,JSON[_0xfe6c('0x74')](_0x2d3b40));delete _0x2d3b40['name'];if(_0x5a2c21===0x191){_0x5a2c21=0x190;}_0x128de2[_0xfe6c('0x21')](_0x5a2c21)[_0xfe6c('0x2a')](_0x33c15d['query']['test']?{'message':_0xfe6c('0x75'),'statusCode':_0x2d3b40[_0xfe6c('0x73')]}:_0x2d3b40);});};