c39abd3e2bc2556da72e9cc5b3f8292ca3ee0af6
[motion2.git] / server / api / intSalesforceAccount / intSalesforceAccount.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 _0x4991=['querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../components/integrations/configuration','jayson/promise','client','http','request','then','info','SalesforceAccount,\x20%s,\x20%s','debug','SalesforceAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','sendStatus','status','end','json','offset','limit','set','Content-Range','apply','reject','update','destroy','stack','name','send','map','SalesforceAccount','rawAttributes','fieldName','model','keys','query','filters','intersection','fields','attributes','length','nolimit','order','where','filter','VIRTUAL','merge','options','count','includeAll','include','findAll','params','find','create','body','getConfigurations','findOne','sort','pick','hasOwnProperty','addConfiguration','AccountId','Subjects','getSubjects','channel','type','Descriptions','SalesforceField','getFields','Task','remoteUri','clientId','username','securityToken','slice','substring','login','password','isNil','ticketType','describe','CallDisposition','CallDurationInSeconds','CallType','IsArchived','Priority','Status','Type','Case','Origin','Reason','SuppliedCompany','remove','includes','custom','picklistValues','label','value','boolean','true','False','statusCode','getFields,\x20%s,\x20%s,\x20%s','test','Wrong\x20credentials','html-pdf','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv'];(function(_0x17ec07,_0xe3ca90){var _0x5a6c45=function(_0x59b715){while(--_0x59b715){_0x17ec07['push'](_0x17ec07['shift']());}};_0x5a6c45(++_0xe3ca90);}(_0x4991,0xf7));var _0x1499=function(_0x4a7193,_0x556c6a){_0x4a7193=_0x4a7193-0x0;var _0xc33d94=_0x4991[_0x4a7193];return _0xc33d94;};'use strict';var pdf=require(_0x1499('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x1499('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x1499('0x2'));var rp=require(_0x1499('0x3'));var moment=require(_0x1499('0x4'));var BPromise=require(_0x1499('0x5'));var Mustache=require(_0x1499('0x6'));var util=require(_0x1499('0x7'));var path=require(_0x1499('0x8'));var sox=require(_0x1499('0x9'));var csv=require('to-csv');var ejs=require(_0x1499('0xa'));var fs=require('fs');var _=require(_0x1499('0xb'));var squel=require(_0x1499('0xc'));var crypto=require(_0x1499('0xd'));var jsforce=require(_0x1499('0xe'));var deskjs=require(_0x1499('0xf'));var toCsv=require(_0x1499('0x10'));var querystring=require(_0x1499('0x11'));var Papa=require('papaparse');var Redis=require(_0x1499('0x12'));var authService=require(_0x1499('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x1499('0x14'));var hardwareService=require(_0x1499('0x15'));var logger=require('../../config/logger')(_0x1499('0x16'));var utils=require(_0x1499('0x17'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var integrations=require(_0x1499('0x18'));var jayson=require(_0x1499('0x19'));var client=jayson[_0x1499('0x1a')][_0x1499('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0x2b95a5,_0x57a0a2,_0x5f34f2,_0x308177){return new BPromise(function(_0x4e5195,_0x37d99e){var _0x12cde0=_0x308177||client;return _0x12cde0[_0x1499('0x1c')](_0x2b95a5,_0x5f34f2)[_0x1499('0x1d')](function(_0x48f654){logger[_0x1499('0x1e')](_0x1499('0x1f'),_0x57a0a2,'request\x20sent');logger[_0x1499('0x20')](_0x1499('0x21'),_0x57a0a2,_0x1499('0x22'),JSON[_0x1499('0x23')](_0x48f654));if(_0x48f654[_0x1499('0x24')]){if(_0x48f654[_0x1499('0x24')]['code']===0x1f4){logger['error']('SalesforceAccount,\x20%s,\x20%s',_0x57a0a2,_0x48f654[_0x1499('0x24')][_0x1499('0x25')]);return _0x37d99e(_0x48f654['error'][_0x1499('0x25')]);}logger[_0x1499('0x24')](_0x1499('0x1f'),_0x57a0a2,_0x48f654[_0x1499('0x24')][_0x1499('0x25')]);return _0x4e5195(_0x48f654[_0x1499('0x24')][_0x1499('0x25')]);}else{logger[_0x1499('0x1e')](_0x1499('0x1f'),_0x57a0a2,_0x1499('0x22'));_0x4e5195(_0x48f654[_0x1499('0x26')][_0x1499('0x25')]);}})[_0x1499('0x27')](function(_0x3b73f6){logger[_0x1499('0x24')](_0x1499('0x1f'),_0x57a0a2,_0x3b73f6);_0x37d99e(_0x3b73f6);});});}function respondWithStatusCode(_0x2c7f57,_0x5615b4){_0x5615b4=_0x5615b4||0xcc;return function(_0x258e9c){if(_0x258e9c){return _0x2c7f57[_0x1499('0x28')](_0x5615b4);}return _0x2c7f57[_0x1499('0x29')](_0x5615b4)[_0x1499('0x2a')]();};}function respondWithResult(_0x3968e0,_0x16d036){_0x16d036=_0x16d036||0xc8;return function(_0x54f3c2){if(_0x54f3c2){return _0x3968e0['status'](_0x16d036)[_0x1499('0x2b')](_0x54f3c2);}};}function respondWithFilteredResult(_0x3c9aca,_0x3b9259){return function(_0x50f0cc){if(_0x50f0cc){var _0x32782a=_0x50f0cc['count'],_0x525d6f=_0x3b9259['offset'],_0x3e5ed1=_0x3b9259[_0x1499('0x2c')]+_0x3b9259[_0x1499('0x2d')],_0x573b51;if(_0x3e5ed1>=_0x32782a){_0x3e5ed1=_0x32782a;_0x573b51=0xc8;}else{_0x573b51=0xce;}_0x3c9aca[_0x1499('0x29')](_0x573b51);return _0x3c9aca[_0x1499('0x2e')](_0x1499('0x2f'),_0x525d6f+'-'+_0x3e5ed1+'/'+_0x32782a)[_0x1499('0x2b')](_0x50f0cc);}return null;};}function patchUpdates(_0x3dd534){return function(_0x5d3ec5){try{jsonpatch[_0x1499('0x30')](_0x5d3ec5,_0x3dd534,!![]);}catch(_0x1a2c99){return BPromise[_0x1499('0x31')](_0x1a2c99);}return _0x5d3ec5['save']();};}function saveUpdates(_0x2dae84,_0x16466c){return function(_0x5d4cb1){if(_0x5d4cb1){return _0x5d4cb1[_0x1499('0x32')](_0x2dae84)[_0x1499('0x1d')](function(_0x497efd){return _0x497efd;});}return null;};}function removeEntity(_0x464c5a,_0x2eda80){return function(_0x15cc57){if(_0x15cc57){return _0x15cc57[_0x1499('0x33')]()[_0x1499('0x1d')](function(){_0x464c5a[_0x1499('0x29')](0xcc)[_0x1499('0x2a')]();});}};}function handleEntityNotFound(_0x18b662,_0x11767f){return function(_0x441d43){if(!_0x441d43){_0x18b662[_0x1499('0x28')](0x194);}return _0x441d43;};}function handleError(_0x3614af,_0xdd10ad){_0xdd10ad=_0xdd10ad||0x1f4;return function(_0x3f4c1a){logger[_0x1499('0x24')](_0x3f4c1a[_0x1499('0x34')]);if(_0x3f4c1a[_0x1499('0x35')]){delete _0x3f4c1a[_0x1499('0x35')];}_0x3614af[_0x1499('0x29')](_0xdd10ad)[_0x1499('0x36')](_0x3f4c1a);};}exports['index']=function(_0x3348bc,_0x121e2f){var _0x45685c={},_0x24b1c7={},_0x31251c={'count':0x0,'rows':[]};var _0x136002=_[_0x1499('0x37')](db[_0x1499('0x38')][_0x1499('0x39')],function(_0x3fddb3){return{'name':_0x3fddb3[_0x1499('0x3a')],'type':_0x3fddb3['type']['key']};});_0x24b1c7[_0x1499('0x3b')]=_['map'](_0x136002,_0x1499('0x35'));_0x24b1c7['query']=_[_0x1499('0x3c')](_0x3348bc[_0x1499('0x3d')]);_0x24b1c7[_0x1499('0x3e')]=_[_0x1499('0x3f')](_0x24b1c7['model'],_0x24b1c7[_0x1499('0x3d')]);_0x45685c['attributes']=_[_0x1499('0x3f')](_0x24b1c7[_0x1499('0x3b')],qs[_0x1499('0x40')](_0x3348bc[_0x1499('0x3d')]['fields']));_0x45685c[_0x1499('0x41')]=_0x45685c[_0x1499('0x41')][_0x1499('0x42')]?_0x45685c[_0x1499('0x41')]:_0x24b1c7['model'];if(!_0x3348bc[_0x1499('0x3d')]['hasOwnProperty'](_0x1499('0x43'))){_0x45685c[_0x1499('0x2d')]=qs[_0x1499('0x2d')](_0x3348bc[_0x1499('0x3d')][_0x1499('0x2d')]);_0x45685c[_0x1499('0x2c')]=qs[_0x1499('0x2c')](_0x3348bc[_0x1499('0x3d')][_0x1499('0x2c')]);}_0x45685c[_0x1499('0x44')]=qs['sort'](_0x3348bc[_0x1499('0x3d')]['sort']);_0x45685c[_0x1499('0x45')]=qs[_0x1499('0x3e')](_['pick'](_0x3348bc[_0x1499('0x3d')],_0x24b1c7[_0x1499('0x3e')]),_0x136002);if(_0x3348bc[_0x1499('0x3d')][_0x1499('0x46')]){_0x45685c[_0x1499('0x45')]=_['merge'](_0x45685c['where'],{'$or':_[_0x1499('0x37')](_0x136002,function(_0x2e5dc6){if(_0x2e5dc6['type']!==_0x1499('0x47')){var _0x3cc452={};_0x3cc452[_0x2e5dc6['name']]={'$like':'%'+_0x3348bc['query'][_0x1499('0x46')]+'%'};return _0x3cc452;}})});}_0x45685c=_[_0x1499('0x48')]({},_0x45685c,_0x3348bc[_0x1499('0x49')]);var _0x491707={'where':_0x45685c[_0x1499('0x45')]};return db[_0x1499('0x38')][_0x1499('0x4a')](_0x491707)[_0x1499('0x1d')](function(_0x5a364a){_0x31251c[_0x1499('0x4a')]=_0x5a364a;if(_0x3348bc[_0x1499('0x3d')][_0x1499('0x4b')]){_0x45685c[_0x1499('0x4c')]=[{'all':!![]}];}return db['SalesforceAccount'][_0x1499('0x4d')](_0x45685c);})[_0x1499('0x1d')](function(_0x6ad8be){_0x31251c['rows']=_0x6ad8be;return _0x31251c;})['then'](respondWithFilteredResult(_0x121e2f,_0x45685c))[_0x1499('0x27')](handleError(_0x121e2f,null));};exports['show']=function(_0x7fa101,_0x34f35c){var _0x345676={'raw':![],'where':{'id':_0x7fa101[_0x1499('0x4e')]['id']}},_0x17c5c0={};_0x17c5c0[_0x1499('0x3b')]=_[_0x1499('0x3c')](db['SalesforceAccount'][_0x1499('0x39')]);_0x17c5c0['query']=_[_0x1499('0x3c')](_0x7fa101[_0x1499('0x3d')]);_0x17c5c0['filters']=_[_0x1499('0x3f')](_0x17c5c0[_0x1499('0x3b')],_0x17c5c0[_0x1499('0x3d')]);_0x345676['attributes']=_[_0x1499('0x3f')](_0x17c5c0[_0x1499('0x3b')],qs[_0x1499('0x40')](_0x7fa101[_0x1499('0x3d')][_0x1499('0x40')]));_0x345676[_0x1499('0x41')]=_0x345676[_0x1499('0x41')][_0x1499('0x42')]?_0x345676[_0x1499('0x41')]:_0x17c5c0[_0x1499('0x3b')];if(_0x7fa101['query'][_0x1499('0x4b')]){_0x345676[_0x1499('0x4c')]=[{'all':!![]}];}_0x345676=_[_0x1499('0x48')]({},_0x345676,_0x7fa101['options']);return db[_0x1499('0x38')][_0x1499('0x4f')](_0x345676)['then'](handleEntityNotFound(_0x34f35c,null))[_0x1499('0x1d')](respondWithResult(_0x34f35c,null))[_0x1499('0x27')](handleError(_0x34f35c,null));};exports['create']=function(_0x3f658b,_0x1fb718){return db[_0x1499('0x38')][_0x1499('0x50')](_0x3f658b[_0x1499('0x51')],{})[_0x1499('0x1d')](respondWithResult(_0x1fb718,0xc9))[_0x1499('0x27')](handleError(_0x1fb718,null));};exports['update']=function(_0x21653a,_0x2a9f23){if(_0x21653a[_0x1499('0x51')]['id']){delete _0x21653a[_0x1499('0x51')]['id'];}return db['SalesforceAccount']['find']({'where':{'id':_0x21653a[_0x1499('0x4e')]['id']}})[_0x1499('0x1d')](handleEntityNotFound(_0x2a9f23,null))['then'](saveUpdates(_0x21653a[_0x1499('0x51')],null))[_0x1499('0x1d')](respondWithResult(_0x2a9f23,null))[_0x1499('0x27')](handleError(_0x2a9f23,null));};exports['destroy']=function(_0x561324,_0x5b09a5){return db[_0x1499('0x38')][_0x1499('0x4f')]({'where':{'id':_0x561324[_0x1499('0x4e')]['id']}})['then'](handleEntityNotFound(_0x5b09a5,null))[_0x1499('0x1d')](removeEntity(_0x5b09a5,null))['catch'](handleError(_0x5b09a5,null));};exports[_0x1499('0x52')]=function(_0x16da1f,_0x2fc6f9,_0x16ef45){var _0x573552={};var _0x53a9da={};var _0x571ef2;var _0x403832;return db[_0x1499('0x38')][_0x1499('0x53')]({'where':{'id':_0x16da1f[_0x1499('0x4e')]['id']}})['then'](handleEntityNotFound(_0x2fc6f9,null))[_0x1499('0x1d')](function(_0x2ecfc5){if(_0x2ecfc5){_0x571ef2=_0x2ecfc5;_0x53a9da['model']=_[_0x1499('0x3c')](db['SalesforceConfiguration'][_0x1499('0x39')]);_0x53a9da[_0x1499('0x3d')]=_[_0x1499('0x3c')](_0x16da1f['query']);_0x53a9da[_0x1499('0x3e')]=_[_0x1499('0x3f')](_0x53a9da[_0x1499('0x3b')],_0x53a9da['query']);_0x573552[_0x1499('0x41')]=_[_0x1499('0x3f')](_0x53a9da[_0x1499('0x3b')],qs['fields'](_0x16da1f[_0x1499('0x3d')][_0x1499('0x40')]));_0x573552[_0x1499('0x41')]=_0x573552[_0x1499('0x41')][_0x1499('0x42')]?_0x573552[_0x1499('0x41')]:_0x53a9da['model'];_0x573552[_0x1499('0x44')]=qs[_0x1499('0x54')](_0x16da1f['query'][_0x1499('0x54')]);_0x573552[_0x1499('0x45')]=qs[_0x1499('0x3e')](_[_0x1499('0x55')](_0x16da1f[_0x1499('0x3d')],_0x53a9da[_0x1499('0x3e')]));if(_0x16da1f['query'][_0x1499('0x46')]){_0x573552[_0x1499('0x45')]=_[_0x1499('0x48')](_0x573552['where'],{'$or':_[_0x1499('0x37')](_0x573552[_0x1499('0x41')],function(_0x502474){var _0x2e42a7={};_0x2e42a7[_0x502474]={'$like':'%'+_0x16da1f[_0x1499('0x3d')][_0x1499('0x46')]+'%'};return _0x2e42a7;})});}_0x573552=_[_0x1499('0x48')]({},_0x573552,_0x16da1f[_0x1499('0x49')]);return _0x571ef2['getConfigurations'](_0x573552);}})['then'](function(_0x198ff5){if(_0x198ff5){_0x403832=_0x198ff5['length'];if(!_0x16da1f['query'][_0x1499('0x56')](_0x1499('0x43'))){_0x573552['limit']=qs[_0x1499('0x2d')](_0x16da1f[_0x1499('0x3d')][_0x1499('0x2d')]);_0x573552['offset']=qs['offset'](_0x16da1f[_0x1499('0x3d')][_0x1499('0x2c')]);}return _0x571ef2[_0x1499('0x52')](_0x573552);}})[_0x1499('0x1d')](function(_0x2fc244){if(_0x2fc244){return _0x2fc244?{'count':_0x403832,'rows':_0x2fc244}:null;}})['then'](respondWithResult(_0x2fc6f9,null))[_0x1499('0x27')](handleError(_0x2fc6f9,null));};exports[_0x1499('0x57')]=function(_0x57bb71,_0x358a76,_0x20e5f3){if(_0x57bb71[_0x1499('0x51')]['id']){delete _0x57bb71['body']['id'];}return db[_0x1499('0x38')][_0x1499('0x53')]({'where':{'id':_0x57bb71[_0x1499('0x4e')]['id']}})[_0x1499('0x1d')](handleEntityNotFound(_0x358a76,null))['then'](function(_0x325614){if(_0x325614){_0x57bb71[_0x1499('0x51')][_0x1499('0x58')]=_0x325614['id'];_0x57bb71['body'][_0x1499('0x59')]=integrations[_0x1499('0x5a')](_0x57bb71[_0x1499('0x51')][_0x1499('0x5b')],_0x57bb71[_0x1499('0x51')][_0x1499('0x5c')]);_0x57bb71['body'][_0x1499('0x5d')]=integrations['getDescriptions'](_0x57bb71['body'][_0x1499('0x5b')],_0x57bb71[_0x1499('0x51')][_0x1499('0x5c')]);return db['SalesforceConfiguration']['create'](_0x57bb71[_0x1499('0x51')],{'include':[{'model':db[_0x1499('0x5e')],'as':'Subjects'},{'model':db[_0x1499('0x5e')],'as':_0x1499('0x5d')}]});}return null;})[_0x1499('0x1d')](respondWithResult(_0x358a76,null))[_0x1499('0x27')](handleError(_0x358a76,null));};exports[_0x1499('0x5f')]=function(_0x3f6f36,_0x3f8b7d,_0x52ae44){var _0x18e5c9;var _0x2452f8='';var _0x4f6674=_0x1499('0x60');return db['SalesforceAccount'][_0x1499('0x53')]({'where':{'id':_0x3f6f36[_0x1499('0x4e')]['id']},'attributes':['id',_0x1499('0x61'),_0x1499('0x62'),'clientSecret',_0x1499('0x63'),'password',_0x1499('0x64')]})['then'](handleEntityNotFound(_0x3f8b7d,null))[_0x1499('0x1d')](function(_0x1ff12d){if(_0x1ff12d){_0x2452f8=_0x1ff12d[_0x1499('0x61')];var _0x47dbbe=_0x2452f8[_0x1499('0x65')](-0x1);if(_0x47dbbe==='/'){_0x2452f8=_0x2452f8[_0x1499('0x66')](0x0,_0x2452f8['lastIndexOf'](_0x47dbbe));}_0x18e5c9=new jsforce['Connection']({'oauth2':{'loginUrl':_0x2452f8,'clientId':_0x1ff12d[_0x1499('0x62')],'clientSecret':_0x1ff12d['clientSecret']}});return _0x18e5c9[_0x1499('0x67')](_0x1ff12d['username'],_0x1ff12d[_0x1499('0x68')]['concat'](_0x1ff12d[_0x1499('0x64')]));}})[_0x1499('0x1d')](function(_0x6304f3){if(_0x6304f3){if(!_[_0x1499('0x69')](_0x3f6f36[_0x1499('0x3d')][_0x1499('0x6a')])){_0x4f6674=_0x3f6f36[_0x1499('0x3d')][_0x1499('0x6a')];}return _0x18e5c9['sobject'](_0x4f6674)[_0x1499('0x6b')]();}})[_0x1499('0x1d')](function(_0x3c5fa2){var _0x57d194=[_0x1499('0x6c'),_0x1499('0x6d'),'CallObject',_0x1499('0x6e'),_0x1499('0x6f'),_0x1499('0x70'),_0x1499('0x71'),_0x1499('0x72')];if(!_['isNil'](_0x3f6f36[_0x1499('0x3d')]['ticketType'])&&_0x3f6f36['query'][_0x1499('0x6a')]===_0x1499('0x73')){_0x57d194=[_0x1499('0x72'),_0x1499('0x74'),_0x1499('0x75'),_0x1499('0x71'),_0x1499('0x70'),'IsEscalated','SuppliedName',_0x1499('0x76')];}if(_0x3c5fa2){_[_0x1499('0x77')](_0x3c5fa2['fields'],function(_0x195de8){return _0x195de8['custom']===![]&&!_0x57d194[_0x1499('0x78')](_0x195de8['name']);});return{'count':_0x3c5fa2[_0x1499('0x40')]['length'],'rows':_[_0x1499('0x37')](_0x3c5fa2['fields'],function(_0x34df20){return{'id':_0x34df20[_0x1499('0x35')],'name':_0x34df20['label'],'custom':_0x34df20[_0x1499('0x79')],'options':_0x34df20[_0x1499('0x7a')]['length']>0x0?_[_0x1499('0x37')](_0x34df20[_0x1499('0x7a')],function(_0x1fcaf5){return{'name':_0x1fcaf5[_0x1499('0x7b')],'value':_0x1fcaf5[_0x1499('0x7c')]};}):_0x34df20[_0x1499('0x5c')]==_0x1499('0x7d')?[{'name':'True','value':_0x1499('0x7e')},{'name':_0x1499('0x7f'),'value':'false'}]:[]};})};}})[_0x1499('0x1d')](respondWithResult(_0x3f8b7d,null))[_0x1499('0x27')](function(_0x577930){var _0x17bc4b=_0x3f6f36[_0x1499('0x3d')]['test']?0x1f4:_0x577930[_0x1499('0x80')]||0x1f4;logger[_0x1499('0x24')](_0x1499('0x81'),_0x1499('0x5f'),_0x17bc4b,JSON[_0x1499('0x23')](_0x577930));delete _0x577930[_0x1499('0x35')];if(_0x17bc4b===0x191){_0x17bc4b=0x190;}_0x3f8b7d[_0x1499('0x29')](_0x17bc4b)[_0x1499('0x36')](_0x3f6f36['query'][_0x1499('0x82')]?{'message':_0x1499('0x83'),'statusCode':_0x577930[_0x1499('0x80')]}:_0x577930);});};