e93d14b799c3b41d4660087ee30c79ebc529207f
[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 _0x073e=['map','DeskAccount','fieldName','model','keys','query','filters','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','findAll','rows','catch','show','params','rawAttributes','length','includeAll','include','create','body','find','getConfigurations','findOne','DeskConfiguration','addConfiguration','Subjects','getSubjects','Descriptions','getDescriptions','channel','type','DeskField','priority','remoteUri','username','password','consumerKey','consumerSecret','token','tokenSecret','slice','lastIndexOf','GET','format','%s/custom_fields','application/json','authType','basic','headers','Authorization','toString','base64','concat','_embedded','label','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','send','test','Wrong\x20credentials','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','sox','to-csv','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','../../components/integrations/configuration','sendStatus','end','json','offset','undefined','limit','count','set','Content-Range','apply','update','destroy','then','status','error','stack','name','index'];(function(_0x4c0298,_0x118b86){var _0x2544ea=function(_0x3d23b1){while(--_0x3d23b1){_0x4c0298['push'](_0x4c0298['shift']());}};_0x2544ea(++_0x118b86);}(_0x073e,0xbc));var _0xe073=function(_0x41d5b4,_0x449f98){_0x41d5b4=_0x41d5b4-0x0;var _0x56a933=_0x073e[_0x41d5b4];return _0x56a933;};'use strict';var emlformat=require(_0xe073('0x0'));var rimraf=require(_0xe073('0x1'));var zipdir=require(_0xe073('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xe073('0x3'));var moment=require(_0xe073('0x4'));var BPromise=require(_0xe073('0x5'));var Mustache=require(_0xe073('0x6'));var util=require('util');var path=require(_0xe073('0x7'));var sox=require(_0xe073('0x8'));var csv=require(_0xe073('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xe073('0xa'));var _=require(_0xe073('0xb'));var squel=require(_0xe073('0xc'));var crypto=require(_0xe073('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xe073('0xe'));var toCsv=require(_0xe073('0x9'));var querystring=require(_0xe073('0xf'));var Papa=require(_0xe073('0x10'));var Redis=require(_0xe073('0x11'));var authService=require(_0xe073('0x12'));var qs=require(_0xe073('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xe073('0x14'));var logger=require(_0xe073('0x15'))(_0xe073('0x16'));var utils=require('../../config/utils');var config=require(_0xe073('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xe073('0x18'))['db'];var integrations=require(_0xe073('0x19'));function respondWithStatusCode(_0x1ed4e5,_0x284ea0){_0x284ea0=_0x284ea0||0xcc;return function(_0x2435dc){if(_0x2435dc){return _0x1ed4e5[_0xe073('0x1a')](_0x284ea0);}return _0x1ed4e5['status'](_0x284ea0)[_0xe073('0x1b')]();};}function respondWithResult(_0x37d7cb,_0xb4c462){_0xb4c462=_0xb4c462||0xc8;return function(_0x396f21){if(_0x396f21){return _0x37d7cb['status'](_0xb4c462)[_0xe073('0x1c')](_0x396f21);}};}function respondWithFilteredResult(_0x3997f5,_0x6450be){return function(_0x50260a){if(_0x50260a){var _0x466ecb=typeof _0x6450be[_0xe073('0x1d')]===_0xe073('0x1e')&&typeof _0x6450be[_0xe073('0x1f')]==='undefined';var _0x466e4b=_0x50260a[_0xe073('0x20')];var _0x502794=_0x466ecb?0x0:_0x6450be['offset'];var _0x4a970f=_0x466ecb?_0x50260a[_0xe073('0x20')]:_0x6450be[_0xe073('0x1d')]+_0x6450be[_0xe073('0x1f')];var _0x21a3e2;if(_0x4a970f>=_0x466e4b){_0x4a970f=_0x466e4b;_0x21a3e2=0xc8;}else{_0x21a3e2=0xce;}_0x3997f5['status'](_0x21a3e2);return _0x3997f5[_0xe073('0x21')](_0xe073('0x22'),_0x502794+'-'+_0x4a970f+'/'+_0x466e4b)['json'](_0x50260a);}return null;};}function patchUpdates(_0x8c54a8){return function(_0x118478){try{jsonpatch[_0xe073('0x23')](_0x118478,_0x8c54a8,!![]);}catch(_0x8cf76d){return BPromise['reject'](_0x8cf76d);}return _0x118478['save']();};}function saveUpdates(_0x5c22b4,_0x20761b){return function(_0x3be595){if(_0x3be595){return _0x3be595[_0xe073('0x24')](_0x5c22b4)['then'](function(_0x19ee1b){return _0x19ee1b;});}return null;};}function removeEntity(_0x9d919f,_0x13af69){return function(_0x1d2b52){if(_0x1d2b52){return _0x1d2b52[_0xe073('0x25')]()[_0xe073('0x26')](function(){_0x9d919f[_0xe073('0x27')](0xcc)[_0xe073('0x1b')]();});}};}function handleEntityNotFound(_0x1350ae,_0x47b2da){return function(_0x4cf714){if(!_0x4cf714){_0x1350ae[_0xe073('0x1a')](0x194);}return _0x4cf714;};}function handleError(_0x49216f,_0x99582f){_0x99582f=_0x99582f||0x1f4;return function(_0x45785a){logger[_0xe073('0x28')](_0x45785a[_0xe073('0x29')]);if(_0x45785a['name']){delete _0x45785a[_0xe073('0x2a')];}_0x49216f[_0xe073('0x27')](_0x99582f)['send'](_0x45785a);};}exports[_0xe073('0x2b')]=function(_0x216fe6,_0x4c2401){var _0x55f3e1={},_0x20de7c={},_0x117b65={'count':0x0,'rows':[]};var _0x343064=_[_0xe073('0x2c')](db[_0xe073('0x2d')]['rawAttributes'],function(_0x4670e2){return{'name':_0x4670e2[_0xe073('0x2e')],'type':_0x4670e2['type']['key']};});_0x20de7c[_0xe073('0x2f')]=_['map'](_0x343064,'name');_0x20de7c['query']=_[_0xe073('0x30')](_0x216fe6[_0xe073('0x31')]);_0x20de7c[_0xe073('0x32')]=_['intersection'](_0x20de7c['model'],_0x20de7c[_0xe073('0x31')]);_0x55f3e1[_0xe073('0x33')]=_[_0xe073('0x34')](_0x20de7c[_0xe073('0x2f')],qs[_0xe073('0x35')](_0x216fe6[_0xe073('0x31')][_0xe073('0x35')]));_0x55f3e1[_0xe073('0x33')]=_0x55f3e1[_0xe073('0x33')]['length']?_0x55f3e1['attributes']:_0x20de7c[_0xe073('0x2f')];if(!_0x216fe6[_0xe073('0x31')][_0xe073('0x36')](_0xe073('0x37'))){_0x55f3e1[_0xe073('0x1f')]=qs[_0xe073('0x1f')](_0x216fe6[_0xe073('0x31')][_0xe073('0x1f')]);_0x55f3e1['offset']=qs[_0xe073('0x1d')](_0x216fe6[_0xe073('0x31')][_0xe073('0x1d')]);}_0x55f3e1[_0xe073('0x38')]=qs[_0xe073('0x39')](_0x216fe6[_0xe073('0x31')][_0xe073('0x39')]);_0x55f3e1[_0xe073('0x3a')]=qs[_0xe073('0x32')](_[_0xe073('0x3b')](_0x216fe6[_0xe073('0x31')],_0x20de7c[_0xe073('0x32')]),_0x343064);if(_0x216fe6[_0xe073('0x31')][_0xe073('0x3c')]){_0x55f3e1[_0xe073('0x3a')]=_[_0xe073('0x3d')](_0x55f3e1[_0xe073('0x3a')],{'$or':_['map'](_0x343064,function(_0x5da462){if(_0x5da462['type']!==_0xe073('0x3e')){var _0x4c12f3={};_0x4c12f3[_0x5da462['name']]={'$like':'%'+_0x216fe6[_0xe073('0x31')][_0xe073('0x3c')]+'%'};return _0x4c12f3;}})});}_0x55f3e1=_[_0xe073('0x3d')]({},_0x55f3e1,_0x216fe6[_0xe073('0x3f')]);var _0x503b4a={'where':_0x55f3e1['where']};return db['DeskAccount'][_0xe073('0x20')](_0x503b4a)[_0xe073('0x26')](function(_0x4a52f9){_0x117b65[_0xe073('0x20')]=_0x4a52f9;if(_0x216fe6[_0xe073('0x31')]['includeAll']){_0x55f3e1['include']=[{'all':!![]}];}return db['DeskAccount'][_0xe073('0x40')](_0x55f3e1);})[_0xe073('0x26')](function(_0x2d2b49){_0x117b65[_0xe073('0x41')]=_0x2d2b49;return _0x117b65;})[_0xe073('0x26')](respondWithFilteredResult(_0x4c2401,_0x55f3e1))[_0xe073('0x42')](handleError(_0x4c2401,null));};exports[_0xe073('0x43')]=function(_0x5bce3f,_0x32b626){var _0x4b5872={'raw':![],'where':{'id':_0x5bce3f[_0xe073('0x44')]['id']}},_0x23acac={};_0x23acac[_0xe073('0x2f')]=_[_0xe073('0x30')](db[_0xe073('0x2d')][_0xe073('0x45')]);_0x23acac[_0xe073('0x31')]=_[_0xe073('0x30')](_0x5bce3f[_0xe073('0x31')]);_0x23acac[_0xe073('0x32')]=_[_0xe073('0x34')](_0x23acac[_0xe073('0x2f')],_0x23acac[_0xe073('0x31')]);_0x4b5872[_0xe073('0x33')]=_[_0xe073('0x34')](_0x23acac[_0xe073('0x2f')],qs[_0xe073('0x35')](_0x5bce3f[_0xe073('0x31')][_0xe073('0x35')]));_0x4b5872[_0xe073('0x33')]=_0x4b5872[_0xe073('0x33')][_0xe073('0x46')]?_0x4b5872[_0xe073('0x33')]:_0x23acac[_0xe073('0x2f')];if(_0x5bce3f[_0xe073('0x31')][_0xe073('0x47')]){_0x4b5872[_0xe073('0x48')]=[{'all':!![]}];}_0x4b5872=_[_0xe073('0x3d')]({},_0x4b5872,_0x5bce3f[_0xe073('0x3f')]);return db['DeskAccount']['find'](_0x4b5872)[_0xe073('0x26')](handleEntityNotFound(_0x32b626,null))[_0xe073('0x26')](respondWithResult(_0x32b626,null))[_0xe073('0x42')](handleError(_0x32b626,null));};exports[_0xe073('0x49')]=function(_0x3360ac,_0x124137){return db[_0xe073('0x2d')][_0xe073('0x49')](_0x3360ac[_0xe073('0x4a')],{})['then'](respondWithResult(_0x124137,0xc9))[_0xe073('0x42')](handleError(_0x124137,null));};exports[_0xe073('0x24')]=function(_0x214704,_0x50622a){if(_0x214704[_0xe073('0x4a')]['id']){delete _0x214704['body']['id'];}return db[_0xe073('0x2d')][_0xe073('0x4b')]({'where':{'id':_0x214704[_0xe073('0x44')]['id']}})[_0xe073('0x26')](handleEntityNotFound(_0x50622a,null))[_0xe073('0x26')](saveUpdates(_0x214704[_0xe073('0x4a')],null))[_0xe073('0x26')](respondWithResult(_0x50622a,null))[_0xe073('0x42')](handleError(_0x50622a,null));};exports[_0xe073('0x25')]=function(_0x55059c,_0x41c4ae){return db['DeskAccount'][_0xe073('0x4b')]({'where':{'id':_0x55059c['params']['id']}})['then'](handleEntityNotFound(_0x41c4ae,null))[_0xe073('0x26')](removeEntity(_0x41c4ae,null))[_0xe073('0x42')](handleError(_0x41c4ae,null));};exports[_0xe073('0x4c')]=function(_0x56fd78,_0x2c521b,_0x4a6814){var _0x5e2d77={};var _0x46c447={};var _0x1674ae;var _0x54c928;return db[_0xe073('0x2d')][_0xe073('0x4d')]({'where':{'id':_0x56fd78[_0xe073('0x44')]['id']}})[_0xe073('0x26')](handleEntityNotFound(_0x2c521b,null))[_0xe073('0x26')](function(_0x2aa6d2){if(_0x2aa6d2){_0x1674ae=_0x2aa6d2;_0x46c447[_0xe073('0x2f')]=_[_0xe073('0x30')](db[_0xe073('0x4e')][_0xe073('0x45')]);_0x46c447[_0xe073('0x31')]=_[_0xe073('0x30')](_0x56fd78[_0xe073('0x31')]);_0x46c447[_0xe073('0x32')]=_['intersection'](_0x46c447[_0xe073('0x2f')],_0x46c447[_0xe073('0x31')]);_0x5e2d77[_0xe073('0x33')]=_[_0xe073('0x34')](_0x46c447['model'],qs[_0xe073('0x35')](_0x56fd78[_0xe073('0x31')][_0xe073('0x35')]));_0x5e2d77[_0xe073('0x33')]=_0x5e2d77['attributes'][_0xe073('0x46')]?_0x5e2d77[_0xe073('0x33')]:_0x46c447['model'];_0x5e2d77[_0xe073('0x38')]=qs['sort'](_0x56fd78[_0xe073('0x31')][_0xe073('0x39')]);_0x5e2d77['where']=qs[_0xe073('0x32')](_[_0xe073('0x3b')](_0x56fd78['query'],_0x46c447[_0xe073('0x32')]));if(_0x56fd78[_0xe073('0x31')][_0xe073('0x3c')]){_0x5e2d77[_0xe073('0x3a')]=_[_0xe073('0x3d')](_0x5e2d77[_0xe073('0x3a')],{'$or':_[_0xe073('0x2c')](_0x5e2d77[_0xe073('0x33')],function(_0x3591ae){var _0x55ab09={};_0x55ab09[_0x3591ae]={'$like':'%'+_0x56fd78['query']['filter']+'%'};return _0x55ab09;})});}_0x5e2d77=_['merge']({},_0x5e2d77,_0x56fd78[_0xe073('0x3f')]);return _0x1674ae[_0xe073('0x4c')](_0x5e2d77);}})[_0xe073('0x26')](function(_0x1dbd20){if(_0x1dbd20){_0x54c928=_0x1dbd20['length'];if(!_0x56fd78[_0xe073('0x31')][_0xe073('0x36')](_0xe073('0x37'))){_0x5e2d77[_0xe073('0x1f')]=qs[_0xe073('0x1f')](_0x56fd78['query'][_0xe073('0x1f')]);_0x5e2d77[_0xe073('0x1d')]=qs[_0xe073('0x1d')](_0x56fd78[_0xe073('0x31')][_0xe073('0x1d')]);}return _0x1674ae[_0xe073('0x4c')](_0x5e2d77);}})[_0xe073('0x26')](function(_0xdfb2fc){if(_0xdfb2fc){return _0xdfb2fc?{'count':_0x54c928,'rows':_0xdfb2fc}:null;}})[_0xe073('0x26')](respondWithResult(_0x2c521b,null))['catch'](handleError(_0x2c521b,null));};exports[_0xe073('0x4f')]=function(_0x2b1ebd,_0x100512,_0x368b93){if(_0x2b1ebd[_0xe073('0x4a')]['id']){delete _0x2b1ebd[_0xe073('0x4a')]['id'];}return db[_0xe073('0x2d')]['findOne']({'where':{'id':_0x2b1ebd['params']['id']}})[_0xe073('0x26')](handleEntityNotFound(_0x100512,null))[_0xe073('0x26')](function(_0x181b75){if(_0x181b75){_0x2b1ebd[_0xe073('0x4a')]['AccountId']=_0x181b75['id'];_0x2b1ebd[_0xe073('0x4a')][_0xe073('0x50')]=integrations[_0xe073('0x51')](_0x2b1ebd['body']['channel'],_0x2b1ebd[_0xe073('0x4a')]['type']);_0x2b1ebd['body'][_0xe073('0x52')]=integrations[_0xe073('0x53')](_0x2b1ebd['body'][_0xe073('0x54')],_0x2b1ebd[_0xe073('0x4a')][_0xe073('0x55')]);return db[_0xe073('0x4e')][_0xe073('0x49')](_0x2b1ebd[_0xe073('0x4a')],{'include':[{'model':db['DeskField'],'as':_0xe073('0x50')},{'model':db[_0xe073('0x56')],'as':'Descriptions'}]});}return null;})[_0xe073('0x26')](respondWithResult(_0x100512,null))[_0xe073('0x42')](handleError(_0x100512,null));};exports['getFields']=function(_0x49c49d,_0x504433,_0x53ec60){var _0x1a1524=[{'name':_0xe073('0x57'),'label':_0xe073('0x57'),'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 _0x1b8039='';return db[_0xe073('0x2d')][_0xe073('0x4d')]({'where':{'id':_0x49c49d[_0xe073('0x44')]['id']},'attributes':['id',_0xe073('0x58'),'authType',_0xe073('0x59'),_0xe073('0x5a'),_0xe073('0x5b'),_0xe073('0x5c'),_0xe073('0x5d'),_0xe073('0x5e')]})[_0xe073('0x26')](handleEntityNotFound(_0x504433,null))[_0xe073('0x26')](function(_0x49fee7){if(_0x49fee7){_0x1b8039=_0x49fee7['remoteUri'];var _0x31fae2=_0x1b8039[_0xe073('0x5f')](-0x1);if(_0x31fae2==='/'){_0x1b8039=_0x1b8039['substring'](0x0,_0x1b8039[_0xe073('0x60')](_0x31fae2));}var _0x2ea4fe={'method':_0xe073('0x61'),'uri':util[_0xe073('0x62')](_0xe073('0x63'),_0x1b8039),'headers':{'Content-Type':_0xe073('0x64'),'Accept':_0xe073('0x64')},'json':!![]};if(_0x49fee7[_0xe073('0x65')]===_0xe073('0x66')){_0x2ea4fe[_0xe073('0x67')][_0xe073('0x68')]=util[_0xe073('0x62')]('Basic\x20%s',new Buffer(util[_0xe073('0x62')]('%s:%s',_0x49fee7[_0xe073('0x59')],_0x49fee7[_0xe073('0x5a')]))[_0xe073('0x69')](_0xe073('0x6a')));}return rp(_0x2ea4fe)[_0xe073('0x26')](function(_0x594fc5){return _0x1a1524[_0xe073('0x6b')](_[_0xe073('0x2c')](_0x594fc5[_0xe073('0x6c')]['entries'],function(_0xefb022){return{'id':_0xefb022[_0xe073('0x2a')],'name':_0xefb022[_0xe073('0x2a')],'type':_0xefb022[_0xe073('0x55')],'active':_0xefb022['active'],'label':_0xefb022[_0xe073('0x6d')],'custom':!![]};}));});}})[_0xe073('0x26')](function(_0x3cc5d3){return{'count':_0x3cc5d3['length'],'rows':_0x3cc5d3};})['then'](respondWithResult(_0x504433,null))[_0xe073('0x42')](function(_0x4b998d){var _0x531376=_0x49c49d[_0xe073('0x31')]['test']?0x1f4:_0x4b998d[_0xe073('0x6e')]||0x1f4;logger[_0xe073('0x28')](_0xe073('0x6f'),_0xe073('0x70'),_0x531376,JSON['stringify'](_0x4b998d));delete _0x4b998d[_0xe073('0x2a')];if(_0x531376===0x191){_0x531376=0x190;}_0x504433[_0xe073('0x27')](_0x531376)[_0xe073('0x71')](_0x49c49d[_0xe073('0x31')][_0xe073('0x72')]?{'message':_0xe073('0x73'),'statusCode':_0x4b998d[_0xe073('0x6e')]}:_0x4b998d);});};