e8651da3970a778525be09c603027500b8bb3a80
[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 _0x5bcb=['entries','active','label','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','send','Wrong\x20credentials','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','request','then','info','DeskAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','DeskAccount,\x20%s,\x20%s','message','result','status','end','count','offset','limit','set','Content-Range','apply','reject','save','destroy','sendStatus','name','rawAttributes','fieldName','type','model','map','query','filters','attributes','length','hasOwnProperty','nolimit','order','sort','filter','where','merge','VIRTUAL','options','DeskAccount','includeAll','include','findAll','show','params','keys','intersection','fields','find','catch','body','update','getConfigurations','findOne','DeskConfiguration','pick','addConfiguration','getSubjects','channel','getDescriptions','Subjects','DeskField','Descriptions','getFields','priority','remoteUri','authType','username','password','consumerKey','consumerSecret','tokenSecret','slice','substring','format','%s/custom_fields','application/json','headers','Authorization','Basic\x20%s','%s:%s','toString','base64'];(function(_0x3cd128,_0x4c36f5){var _0x1c3e99=function(_0x2b009f){while(--_0x2b009f){_0x3cd128['push'](_0x3cd128['shift']());}};_0x1c3e99(++_0x4c36f5);}(_0x5bcb,0x83));var _0xb5bc=function(_0x2e484d,_0x2dc3b1){_0x2e484d=_0x2e484d-0x0;var _0x9635b0=_0x5bcb[_0x2e484d];return _0x9635b0;};'use strict';var pdf=require(_0xb5bc('0x0'));var emlformat=require(_0xb5bc('0x1'));var rimraf=require(_0xb5bc('0x2'));var zipdir=require(_0xb5bc('0x3'));var jsonpatch=require(_0xb5bc('0x4'));var rp=require('request-promise');var moment=require(_0xb5bc('0x5'));var BPromise=require(_0xb5bc('0x6'));var Mustache=require(_0xb5bc('0x7'));var util=require(_0xb5bc('0x8'));var path=require('path');var sox=require(_0xb5bc('0x9'));var csv=require(_0xb5bc('0xa'));var ejs=require(_0xb5bc('0xb'));var fs=require('fs');var _=require(_0xb5bc('0xc'));var squel=require(_0xb5bc('0xd'));var crypto=require('crypto');var jsforce=require(_0xb5bc('0xe'));var deskjs=require(_0xb5bc('0xf'));var toCsv=require('to-csv');var querystring=require(_0xb5bc('0x10'));var Papa=require('papaparse');var Redis=require(_0xb5bc('0x11'));var authService=require(_0xb5bc('0x12'));var qs=require(_0xb5bc('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb5bc('0x14'));var logger=require(_0xb5bc('0x15'))(_0xb5bc('0x16'));var utils=require('../../config/utils');var config=require(_0xb5bc('0x17'));var licenseUtil=require(_0xb5bc('0x18'));var db=require(_0xb5bc('0x19'))['db'];var integrations=require(_0xb5bc('0x1a'));var jayson=require(_0xb5bc('0x1b'));var client=jayson[_0xb5bc('0x1c')]['http']({'port':0x232a});function respondWithRpcPromise(_0x7dc40b,_0x3726a0,_0x3700bc,_0xdada87){return new BPromise(function(_0x15fdc3,_0x195554){var _0x1a5ba7=_0xdada87||client;return _0x1a5ba7[_0xb5bc('0x1d')](_0x7dc40b,_0x3700bc)[_0xb5bc('0x1e')](function(_0x5c717c){logger[_0xb5bc('0x1f')]('DeskAccount,\x20%s,\x20%s',_0x3726a0,'request\x20sent');logger['debug'](_0xb5bc('0x20'),_0x3726a0,_0xb5bc('0x21'),JSON[_0xb5bc('0x22')](_0x5c717c));if(_0x5c717c[_0xb5bc('0x23')]){if(_0x5c717c['error'][_0xb5bc('0x24')]===0x1f4){logger[_0xb5bc('0x23')](_0xb5bc('0x25'),_0x3726a0,_0x5c717c['error'][_0xb5bc('0x26')]);return _0x195554(_0x5c717c[_0xb5bc('0x23')][_0xb5bc('0x26')]);}logger[_0xb5bc('0x23')](_0xb5bc('0x25'),_0x3726a0,_0x5c717c[_0xb5bc('0x23')]['message']);return _0x15fdc3(_0x5c717c[_0xb5bc('0x23')][_0xb5bc('0x26')]);}else{logger['info'](_0xb5bc('0x25'),_0x3726a0,_0xb5bc('0x21'));_0x15fdc3(_0x5c717c[_0xb5bc('0x27')][_0xb5bc('0x26')]);}})['catch'](function(_0x54bb1f){logger[_0xb5bc('0x23')]('DeskAccount,\x20%s,\x20%s',_0x3726a0,_0x54bb1f);_0x195554(_0x54bb1f);});});}function respondWithStatusCode(_0x396474,_0x9942a4){_0x9942a4=_0x9942a4||0xcc;return function(_0x30c8d3){if(_0x30c8d3){return _0x396474['sendStatus'](_0x9942a4);}return _0x396474[_0xb5bc('0x28')](_0x9942a4)[_0xb5bc('0x29')]();};}function respondWithResult(_0x34dcb9,_0x3bedb4){_0x3bedb4=_0x3bedb4||0xc8;return function(_0x397ce8){if(_0x397ce8){return _0x34dcb9[_0xb5bc('0x28')](_0x3bedb4)['json'](_0x397ce8);}};}function respondWithFilteredResult(_0x1f5595,_0x5fcb40){return function(_0x3a78dc){if(_0x3a78dc){var _0x21fda7=_0x3a78dc[_0xb5bc('0x2a')],_0x3eabf7=_0x5fcb40[_0xb5bc('0x2b')],_0x533cd4=_0x5fcb40['offset']+_0x5fcb40[_0xb5bc('0x2c')],_0x579905;if(_0x533cd4>=_0x21fda7){_0x533cd4=_0x21fda7;_0x579905=0xc8;}else{_0x579905=0xce;}_0x1f5595[_0xb5bc('0x28')](_0x579905);return _0x1f5595[_0xb5bc('0x2d')](_0xb5bc('0x2e'),_0x3eabf7+'-'+_0x533cd4+'/'+_0x21fda7)['json'](_0x3a78dc);}return null;};}function patchUpdates(_0xd9b067){return function(_0x23a77b){try{jsonpatch[_0xb5bc('0x2f')](_0x23a77b,_0xd9b067,!![]);}catch(_0x337e8c){return BPromise[_0xb5bc('0x30')](_0x337e8c);}return _0x23a77b[_0xb5bc('0x31')]();};}function saveUpdates(_0x4d101e,_0x5966c8){return function(_0x24d545){if(_0x24d545){return _0x24d545['update'](_0x4d101e)[_0xb5bc('0x1e')](function(_0x1e2f56){return _0x1e2f56;});}return null;};}function removeEntity(_0x3ff48b,_0x24d8ae){return function(_0x52d1bd){if(_0x52d1bd){return _0x52d1bd[_0xb5bc('0x32')]()[_0xb5bc('0x1e')](function(){_0x3ff48b[_0xb5bc('0x28')](0xcc)[_0xb5bc('0x29')]();});}};}function handleEntityNotFound(_0x45a5bd,_0x3c2514){return function(_0x56a3a1){if(!_0x56a3a1){_0x45a5bd[_0xb5bc('0x33')](0x194);}return _0x56a3a1;};}function handleError(_0x2bc157,_0x21afd2){_0x21afd2=_0x21afd2||0x1f4;return function(_0x114ccf){logger[_0xb5bc('0x23')](_0x114ccf['stack']);if(_0x114ccf[_0xb5bc('0x34')]){delete _0x114ccf[_0xb5bc('0x34')];}_0x2bc157[_0xb5bc('0x28')](_0x21afd2)['send'](_0x114ccf);};}exports['index']=function(_0x26fc18,_0x32f85f){var _0x150392={},_0x21a3dc={},_0x4d1fc5={'count':0x0,'rows':[]};var _0x408fcb=_['map'](db['DeskAccount'][_0xb5bc('0x35')],function(_0x3e5f85){return{'name':_0x3e5f85[_0xb5bc('0x36')],'type':_0x3e5f85[_0xb5bc('0x37')]['key']};});_0x21a3dc[_0xb5bc('0x38')]=_[_0xb5bc('0x39')](_0x408fcb,_0xb5bc('0x34'));_0x21a3dc[_0xb5bc('0x3a')]=_['keys'](_0x26fc18[_0xb5bc('0x3a')]);_0x21a3dc[_0xb5bc('0x3b')]=_['intersection'](_0x21a3dc['model'],_0x21a3dc['query']);_0x150392[_0xb5bc('0x3c')]=_['intersection'](_0x21a3dc[_0xb5bc('0x38')],qs['fields'](_0x26fc18[_0xb5bc('0x3a')]['fields']));_0x150392[_0xb5bc('0x3c')]=_0x150392[_0xb5bc('0x3c')][_0xb5bc('0x3d')]?_0x150392[_0xb5bc('0x3c')]:_0x21a3dc['model'];if(!_0x26fc18[_0xb5bc('0x3a')][_0xb5bc('0x3e')](_0xb5bc('0x3f'))){_0x150392['limit']=qs[_0xb5bc('0x2c')](_0x26fc18[_0xb5bc('0x3a')]['limit']);_0x150392[_0xb5bc('0x2b')]=qs[_0xb5bc('0x2b')](_0x26fc18[_0xb5bc('0x3a')]['offset']);}_0x150392[_0xb5bc('0x40')]=qs[_0xb5bc('0x41')](_0x26fc18[_0xb5bc('0x3a')][_0xb5bc('0x41')]);_0x150392['where']=qs[_0xb5bc('0x3b')](_['pick'](_0x26fc18['query'],_0x21a3dc[_0xb5bc('0x3b')]),_0x408fcb);if(_0x26fc18[_0xb5bc('0x3a')][_0xb5bc('0x42')]){_0x150392[_0xb5bc('0x43')]=_[_0xb5bc('0x44')](_0x150392[_0xb5bc('0x43')],{'$or':_[_0xb5bc('0x39')](_0x408fcb,function(_0x4f9eae){if(_0x4f9eae[_0xb5bc('0x37')]!==_0xb5bc('0x45')){var _0x4381a9={};_0x4381a9[_0x4f9eae['name']]={'$like':'%'+_0x26fc18['query'][_0xb5bc('0x42')]+'%'};return _0x4381a9;}})});}_0x150392=_['merge']({},_0x150392,_0x26fc18[_0xb5bc('0x46')]);var _0x4e6432={'where':_0x150392['where']};return db[_0xb5bc('0x47')][_0xb5bc('0x2a')](_0x4e6432)[_0xb5bc('0x1e')](function(_0x520899){_0x4d1fc5['count']=_0x520899;if(_0x26fc18[_0xb5bc('0x3a')][_0xb5bc('0x48')]){_0x150392[_0xb5bc('0x49')]=[{'all':!![]}];}return db[_0xb5bc('0x47')][_0xb5bc('0x4a')](_0x150392);})[_0xb5bc('0x1e')](function(_0x3041ee){_0x4d1fc5['rows']=_0x3041ee;return _0x4d1fc5;})['then'](respondWithFilteredResult(_0x32f85f,_0x150392))['catch'](handleError(_0x32f85f,null));};exports[_0xb5bc('0x4b')]=function(_0x4f7251,_0x2e4d79){var _0x5e29a8={'raw':![],'where':{'id':_0x4f7251[_0xb5bc('0x4c')]['id']}},_0x438afa={};_0x438afa['model']=_[_0xb5bc('0x4d')](db[_0xb5bc('0x47')]['rawAttributes']);_0x438afa[_0xb5bc('0x3a')]=_[_0xb5bc('0x4d')](_0x4f7251[_0xb5bc('0x3a')]);_0x438afa[_0xb5bc('0x3b')]=_[_0xb5bc('0x4e')](_0x438afa[_0xb5bc('0x38')],_0x438afa['query']);_0x5e29a8['attributes']=_['intersection'](_0x438afa[_0xb5bc('0x38')],qs[_0xb5bc('0x4f')](_0x4f7251['query'][_0xb5bc('0x4f')]));_0x5e29a8[_0xb5bc('0x3c')]=_0x5e29a8['attributes'][_0xb5bc('0x3d')]?_0x5e29a8[_0xb5bc('0x3c')]:_0x438afa['model'];if(_0x4f7251[_0xb5bc('0x3a')][_0xb5bc('0x48')]){_0x5e29a8[_0xb5bc('0x49')]=[{'all':!![]}];}_0x5e29a8=_['merge']({},_0x5e29a8,_0x4f7251[_0xb5bc('0x46')]);return db[_0xb5bc('0x47')][_0xb5bc('0x50')](_0x5e29a8)[_0xb5bc('0x1e')](handleEntityNotFound(_0x2e4d79,null))[_0xb5bc('0x1e')](respondWithResult(_0x2e4d79,null))[_0xb5bc('0x51')](handleError(_0x2e4d79,null));};exports['create']=function(_0x8cfe07,_0x5d37da){return db['DeskAccount']['create'](_0x8cfe07[_0xb5bc('0x52')],{})[_0xb5bc('0x1e')](respondWithResult(_0x5d37da,0xc9))['catch'](handleError(_0x5d37da,null));};exports[_0xb5bc('0x53')]=function(_0x38b91f,_0x5eb8ae){if(_0x38b91f[_0xb5bc('0x52')]['id']){delete _0x38b91f[_0xb5bc('0x52')]['id'];}return db[_0xb5bc('0x47')][_0xb5bc('0x50')]({'where':{'id':_0x38b91f[_0xb5bc('0x4c')]['id']}})[_0xb5bc('0x1e')](handleEntityNotFound(_0x5eb8ae,null))['then'](saveUpdates(_0x38b91f[_0xb5bc('0x52')],null))[_0xb5bc('0x1e')](respondWithResult(_0x5eb8ae,null))[_0xb5bc('0x51')](handleError(_0x5eb8ae,null));};exports[_0xb5bc('0x32')]=function(_0xf94cd4,_0x522f15){return db['DeskAccount'][_0xb5bc('0x50')]({'where':{'id':_0xf94cd4['params']['id']}})[_0xb5bc('0x1e')](handleEntityNotFound(_0x522f15,null))[_0xb5bc('0x1e')](removeEntity(_0x522f15,null))[_0xb5bc('0x51')](handleError(_0x522f15,null));};exports[_0xb5bc('0x54')]=function(_0x18b1a6,_0x4b126e,_0x344f9f){var _0x2b1434={};var _0xd5e7bd={};var _0x1b6189;var _0x5ae24c;return db[_0xb5bc('0x47')][_0xb5bc('0x55')]({'where':{'id':_0x18b1a6[_0xb5bc('0x4c')]['id']}})[_0xb5bc('0x1e')](handleEntityNotFound(_0x4b126e,null))['then'](function(_0x588a18){if(_0x588a18){_0x1b6189=_0x588a18;_0xd5e7bd[_0xb5bc('0x38')]=_[_0xb5bc('0x4d')](db[_0xb5bc('0x56')][_0xb5bc('0x35')]);_0xd5e7bd[_0xb5bc('0x3a')]=_[_0xb5bc('0x4d')](_0x18b1a6[_0xb5bc('0x3a')]);_0xd5e7bd['filters']=_['intersection'](_0xd5e7bd[_0xb5bc('0x38')],_0xd5e7bd[_0xb5bc('0x3a')]);_0x2b1434[_0xb5bc('0x3c')]=_[_0xb5bc('0x4e')](_0xd5e7bd[_0xb5bc('0x38')],qs[_0xb5bc('0x4f')](_0x18b1a6[_0xb5bc('0x3a')][_0xb5bc('0x4f')]));_0x2b1434[_0xb5bc('0x3c')]=_0x2b1434[_0xb5bc('0x3c')][_0xb5bc('0x3d')]?_0x2b1434['attributes']:_0xd5e7bd[_0xb5bc('0x38')];_0x2b1434[_0xb5bc('0x40')]=qs[_0xb5bc('0x41')](_0x18b1a6['query']['sort']);_0x2b1434['where']=qs[_0xb5bc('0x3b')](_[_0xb5bc('0x57')](_0x18b1a6[_0xb5bc('0x3a')],_0xd5e7bd['filters']));if(_0x18b1a6['query'][_0xb5bc('0x42')]){_0x2b1434[_0xb5bc('0x43')]=_[_0xb5bc('0x44')](_0x2b1434[_0xb5bc('0x43')],{'$or':_['map'](_0x2b1434[_0xb5bc('0x3c')],function(_0x167129){var _0x48b082={};_0x48b082[_0x167129]={'$like':'%'+_0x18b1a6[_0xb5bc('0x3a')]['filter']+'%'};return _0x48b082;})});}_0x2b1434=_[_0xb5bc('0x44')]({},_0x2b1434,_0x18b1a6['options']);return _0x1b6189[_0xb5bc('0x54')](_0x2b1434);}})[_0xb5bc('0x1e')](function(_0x263835){if(_0x263835){_0x5ae24c=_0x263835[_0xb5bc('0x3d')];if(!_0x18b1a6[_0xb5bc('0x3a')][_0xb5bc('0x3e')]('nolimit')){_0x2b1434[_0xb5bc('0x2c')]=qs['limit'](_0x18b1a6[_0xb5bc('0x3a')]['limit']);_0x2b1434['offset']=qs[_0xb5bc('0x2b')](_0x18b1a6['query'][_0xb5bc('0x2b')]);}return _0x1b6189[_0xb5bc('0x54')](_0x2b1434);}})['then'](function(_0x3d0c97){if(_0x3d0c97){return _0x3d0c97?{'count':_0x5ae24c,'rows':_0x3d0c97}:null;}})['then'](respondWithResult(_0x4b126e,null))['catch'](handleError(_0x4b126e,null));};exports[_0xb5bc('0x58')]=function(_0x3bbc54,_0x12e845,_0x5f54cb){if(_0x3bbc54[_0xb5bc('0x52')]['id']){delete _0x3bbc54[_0xb5bc('0x52')]['id'];}return db[_0xb5bc('0x47')][_0xb5bc('0x55')]({'where':{'id':_0x3bbc54[_0xb5bc('0x4c')]['id']}})[_0xb5bc('0x1e')](handleEntityNotFound(_0x12e845,null))['then'](function(_0x4b1657){if(_0x4b1657){_0x3bbc54[_0xb5bc('0x52')]['AccountId']=_0x4b1657['id'];_0x3bbc54['body']['Subjects']=integrations[_0xb5bc('0x59')](_0x3bbc54['body'][_0xb5bc('0x5a')],_0x3bbc54['body']['type']);_0x3bbc54[_0xb5bc('0x52')]['Descriptions']=integrations[_0xb5bc('0x5b')](_0x3bbc54[_0xb5bc('0x52')]['channel'],_0x3bbc54[_0xb5bc('0x52')]['type']);return db[_0xb5bc('0x56')]['create'](_0x3bbc54[_0xb5bc('0x52')],{'include':[{'model':db['DeskField'],'as':_0xb5bc('0x5c')},{'model':db[_0xb5bc('0x5d')],'as':_0xb5bc('0x5e')}]});}return null;})['then'](respondWithResult(_0x12e845,null))[_0xb5bc('0x51')](handleError(_0x12e845,null));};exports[_0xb5bc('0x5f')]=function(_0x9d6933,_0x28b2de,_0x2f60a2){var _0x465dfd=[{'name':_0xb5bc('0x60'),'label':_0xb5bc('0x60'),'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 _0x25579a='';return db[_0xb5bc('0x47')][_0xb5bc('0x55')]({'where':{'id':_0x9d6933[_0xb5bc('0x4c')]['id']},'attributes':['id',_0xb5bc('0x61'),_0xb5bc('0x62'),_0xb5bc('0x63'),_0xb5bc('0x64'),_0xb5bc('0x65'),_0xb5bc('0x66'),'token',_0xb5bc('0x67')]})[_0xb5bc('0x1e')](handleEntityNotFound(_0x28b2de,null))[_0xb5bc('0x1e')](function(_0x4e2b95){if(_0x4e2b95){_0x25579a=_0x4e2b95[_0xb5bc('0x61')];var _0xff3691=_0x25579a[_0xb5bc('0x68')](-0x1);if(_0xff3691==='/'){_0x25579a=_0x25579a[_0xb5bc('0x69')](0x0,_0x25579a['lastIndexOf'](_0xff3691));}var _0x2495f7={'method':'GET','uri':util[_0xb5bc('0x6a')](_0xb5bc('0x6b'),_0x25579a),'headers':{'Content-Type':_0xb5bc('0x6c'),'Accept':_0xb5bc('0x6c')},'json':!![]};if(_0x4e2b95[_0xb5bc('0x62')]==='basic'){_0x2495f7[_0xb5bc('0x6d')][_0xb5bc('0x6e')]=util['format'](_0xb5bc('0x6f'),new Buffer(util['format'](_0xb5bc('0x70'),_0x4e2b95['username'],_0x4e2b95[_0xb5bc('0x64')]))[_0xb5bc('0x71')](_0xb5bc('0x72')));}return rp(_0x2495f7)[_0xb5bc('0x1e')](function(_0x3c7fec){return _0x465dfd['concat'](_['map'](_0x3c7fec['_embedded'][_0xb5bc('0x73')],function(_0x4b0595){return{'id':_0x4b0595['name'],'name':_0x4b0595[_0xb5bc('0x34')],'type':_0x4b0595['type'],'active':_0x4b0595[_0xb5bc('0x74')],'label':_0x4b0595[_0xb5bc('0x75')],'custom':!![]};}));});}})[_0xb5bc('0x1e')](function(_0x2f7d52){return{'count':_0x2f7d52[_0xb5bc('0x3d')],'rows':_0x2f7d52};})[_0xb5bc('0x1e')](respondWithResult(_0x28b2de,null))[_0xb5bc('0x51')](function(_0x12dd63){var _0x2487be=_0x9d6933[_0xb5bc('0x3a')][_0xb5bc('0x76')]?0x1f4:_0x12dd63[_0xb5bc('0x77')]||0x1f4;logger[_0xb5bc('0x23')](_0xb5bc('0x78'),_0xb5bc('0x5f'),_0x2487be,JSON[_0xb5bc('0x22')](_0x12dd63));delete _0x12dd63[_0xb5bc('0x34')];if(_0x2487be===0x191){_0x2487be=0x190;}_0x28b2de['status'](_0x2487be)[_0xb5bc('0x79')](_0x9d6933['query'][_0xb5bc('0x76')]?{'message':_0xb5bc('0x7a'),'statusCode':_0x12dd63['statusCode']}:_0x12dd63);});};