961f1e7b93a8bd335a3ab048742a40518e0882b0
[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 _0x00e7=['lastIndexOf','Connection','login','concat','ticketType','sobject','describe','OwnerId','ActivityDate','IsReminderSet','IsRecurrence','Subject','Description','int','boolean','email','textarea','phone','includes','custom','picklistValues','label','value','True','true','False','false','test','statusCode','error','getFields,\x20%s,\x20%s,\x20%s','stringify','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','ejs','fs-extra','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','undefined','limit','count','set','Content-Range','apply','reject','save','destroy','then','end','stack','name','index','map','SalesforceAccount','rawAttributes','fieldName','type','key','query','keys','intersection','attributes','fields','length','model','nolimit','offset','order','sort','where','pick','filters','merge','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','update','getConfigurations','findOne','hasOwnProperty','addConfiguration','Subjects','getSubjects','channel','getDescriptions','SalesforceConfiguration','SalesforceField','Descriptions','getFields','Task','remoteUri','clientId','clientSecret','password','securityToken','slice','substring'];(function(_0x319bf6,_0x3b9217){var _0x46cbe1=function(_0x2fe16b){while(--_0x2fe16b){_0x319bf6['push'](_0x319bf6['shift']());}};_0x46cbe1(++_0x3b9217);}(_0x00e7,0x19d));var _0x700e=function(_0x2aecb2,_0x343312){_0x2aecb2=_0x2aecb2-0x0;var _0x3ebb80=_0x00e7[_0x2aecb2];return _0x3ebb80;};'use strict';var emlformat=require(_0x700e('0x0'));var rimraf=require(_0x700e('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x700e('0x2'));var rp=require('request-promise');var moment=require(_0x700e('0x3'));var BPromise=require(_0x700e('0x4'));var Mustache=require(_0x700e('0x5'));var util=require(_0x700e('0x6'));var path=require(_0x700e('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x700e('0x8'));var fs=require('fs');var fs_extra=require(_0x700e('0x9'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x700e('0xa'));var jsforce=require(_0x700e('0xb'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x700e('0xc'));var Papa=require(_0x700e('0xd'));var Redis=require(_0x700e('0xe'));var authService=require(_0x700e('0xf'));var qs=require(_0x700e('0x10'));var as=require(_0x700e('0x11'));var hardwareService=require(_0x700e('0x12'));var logger=require(_0x700e('0x13'))('api');var utils=require(_0x700e('0x14'));var config=require(_0x700e('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x700e('0x16'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x1c0dee,_0x55ea85){_0x55ea85=_0x55ea85||0xcc;return function(_0x1687bb){if(_0x1687bb){return _0x1c0dee[_0x700e('0x17')](_0x55ea85);}return _0x1c0dee[_0x700e('0x18')](_0x55ea85)['end']();};}function respondWithResult(_0x2413cf,_0xc74da7){_0xc74da7=_0xc74da7||0xc8;return function(_0x3435c6){if(_0x3435c6){return _0x2413cf[_0x700e('0x18')](_0xc74da7)[_0x700e('0x19')](_0x3435c6);}};}function respondWithFilteredResult(_0x4e193f,_0x234bdc){return function(_0x47acc0){if(_0x47acc0){var _0x519cc8=typeof _0x234bdc['offset']===_0x700e('0x1a')&&typeof _0x234bdc[_0x700e('0x1b')]===_0x700e('0x1a');var _0x483107=_0x47acc0[_0x700e('0x1c')];var _0x1376d4=_0x519cc8?0x0:_0x234bdc['offset'];var _0x44f8d9=_0x519cc8?_0x47acc0[_0x700e('0x1c')]:_0x234bdc['offset']+_0x234bdc[_0x700e('0x1b')];var _0x209bd5;if(_0x44f8d9>=_0x483107){_0x44f8d9=_0x483107;_0x209bd5=0xc8;}else{_0x209bd5=0xce;}_0x4e193f['status'](_0x209bd5);return _0x4e193f[_0x700e('0x1d')](_0x700e('0x1e'),_0x1376d4+'-'+_0x44f8d9+'/'+_0x483107)[_0x700e('0x19')](_0x47acc0);}return null;};}function patchUpdates(_0x56f61a){return function(_0x444c35){try{jsonpatch[_0x700e('0x1f')](_0x444c35,_0x56f61a,!![]);}catch(_0x54cd60){return BPromise[_0x700e('0x20')](_0x54cd60);}return _0x444c35[_0x700e('0x21')]();};}function saveUpdates(_0xa44812,_0x4038a0){return function(_0x24d881){if(_0x24d881){return _0x24d881['update'](_0xa44812)['then'](function(_0xd880){return _0xd880;});}return null;};}function removeEntity(_0xb75a12,_0x2f760c){return function(_0x4512d7){if(_0x4512d7){return _0x4512d7[_0x700e('0x22')]()[_0x700e('0x23')](function(){_0xb75a12[_0x700e('0x18')](0xcc)[_0x700e('0x24')]();});}};}function handleEntityNotFound(_0x58db6a,_0x5c32c3){return function(_0x3f7b32){if(!_0x3f7b32){_0x58db6a[_0x700e('0x17')](0x194);}return _0x3f7b32;};}function handleError(_0x524189,_0x2375c8){_0x2375c8=_0x2375c8||0x1f4;return function(_0xcb9994){logger['error'](_0xcb9994[_0x700e('0x25')]);if(_0xcb9994[_0x700e('0x26')]){delete _0xcb9994[_0x700e('0x26')];}_0x524189['status'](_0x2375c8)['send'](_0xcb9994);};}exports[_0x700e('0x27')]=function(_0x51dcde,_0x53ccd6){var _0x3008fb={},_0xe3c73e={},_0x388591={'count':0x0,'rows':[]};var _0x7da20b=_[_0x700e('0x28')](db[_0x700e('0x29')][_0x700e('0x2a')],function(_0x1bc9ce){return{'name':_0x1bc9ce[_0x700e('0x2b')],'type':_0x1bc9ce[_0x700e('0x2c')][_0x700e('0x2d')]};});_0xe3c73e['model']=_['map'](_0x7da20b,_0x700e('0x26'));_0xe3c73e[_0x700e('0x2e')]=_[_0x700e('0x2f')](_0x51dcde[_0x700e('0x2e')]);_0xe3c73e['filters']=_[_0x700e('0x30')](_0xe3c73e['model'],_0xe3c73e[_0x700e('0x2e')]);_0x3008fb[_0x700e('0x31')]=_[_0x700e('0x30')](_0xe3c73e['model'],qs[_0x700e('0x32')](_0x51dcde['query'][_0x700e('0x32')]));_0x3008fb[_0x700e('0x31')]=_0x3008fb['attributes'][_0x700e('0x33')]?_0x3008fb[_0x700e('0x31')]:_0xe3c73e[_0x700e('0x34')];if(!_0x51dcde[_0x700e('0x2e')]['hasOwnProperty'](_0x700e('0x35'))){_0x3008fb[_0x700e('0x1b')]=qs['limit'](_0x51dcde[_0x700e('0x2e')][_0x700e('0x1b')]);_0x3008fb[_0x700e('0x36')]=qs[_0x700e('0x36')](_0x51dcde[_0x700e('0x2e')][_0x700e('0x36')]);}_0x3008fb[_0x700e('0x37')]=qs[_0x700e('0x38')](_0x51dcde[_0x700e('0x2e')][_0x700e('0x38')]);_0x3008fb[_0x700e('0x39')]=qs['filters'](_[_0x700e('0x3a')](_0x51dcde[_0x700e('0x2e')],_0xe3c73e[_0x700e('0x3b')]),_0x7da20b);if(_0x51dcde['query']['filter']){_0x3008fb['where']=_[_0x700e('0x3c')](_0x3008fb[_0x700e('0x39')],{'$or':_[_0x700e('0x28')](_0x7da20b,function(_0x41167a){if(_0x41167a[_0x700e('0x2c')]!==_0x700e('0x3d')){var _0x4e977f={};_0x4e977f[_0x41167a[_0x700e('0x26')]]={'$like':'%'+_0x51dcde[_0x700e('0x2e')][_0x700e('0x3e')]+'%'};return _0x4e977f;}})});}_0x3008fb=_[_0x700e('0x3c')]({},_0x3008fb,_0x51dcde[_0x700e('0x3f')]);var _0x5a1576={'where':_0x3008fb[_0x700e('0x39')]};return db[_0x700e('0x29')][_0x700e('0x1c')](_0x5a1576)['then'](function(_0x1be4e2){_0x388591[_0x700e('0x1c')]=_0x1be4e2;if(_0x51dcde[_0x700e('0x2e')][_0x700e('0x40')]){_0x3008fb[_0x700e('0x41')]=[{'all':!![]}];}return db[_0x700e('0x29')][_0x700e('0x42')](_0x3008fb);})[_0x700e('0x23')](function(_0x5e7720){_0x388591[_0x700e('0x43')]=_0x5e7720;return _0x388591;})['then'](respondWithFilteredResult(_0x53ccd6,_0x3008fb))[_0x700e('0x44')](handleError(_0x53ccd6,null));};exports[_0x700e('0x45')]=function(_0x4e5ddb,_0xb1f3b4){var _0x4ace5d={'raw':![],'where':{'id':_0x4e5ddb[_0x700e('0x46')]['id']}},_0xc18420={};_0xc18420[_0x700e('0x34')]=_[_0x700e('0x2f')](db[_0x700e('0x29')][_0x700e('0x2a')]);_0xc18420[_0x700e('0x2e')]=_[_0x700e('0x2f')](_0x4e5ddb[_0x700e('0x2e')]);_0xc18420[_0x700e('0x3b')]=_['intersection'](_0xc18420[_0x700e('0x34')],_0xc18420[_0x700e('0x2e')]);_0x4ace5d['attributes']=_[_0x700e('0x30')](_0xc18420[_0x700e('0x34')],qs['fields'](_0x4e5ddb[_0x700e('0x2e')][_0x700e('0x32')]));_0x4ace5d[_0x700e('0x31')]=_0x4ace5d[_0x700e('0x31')]['length']?_0x4ace5d[_0x700e('0x31')]:_0xc18420[_0x700e('0x34')];if(_0x4e5ddb['query'][_0x700e('0x40')]){_0x4ace5d[_0x700e('0x41')]=[{'all':!![]}];}_0x4ace5d=_[_0x700e('0x3c')]({},_0x4ace5d,_0x4e5ddb['options']);return db['SalesforceAccount'][_0x700e('0x47')](_0x4ace5d)[_0x700e('0x23')](handleEntityNotFound(_0xb1f3b4,null))[_0x700e('0x23')](respondWithResult(_0xb1f3b4,null))[_0x700e('0x44')](handleError(_0xb1f3b4,null));};exports[_0x700e('0x48')]=function(_0x31721a,_0x139661){return db[_0x700e('0x29')][_0x700e('0x48')](_0x31721a[_0x700e('0x49')],{})[_0x700e('0x23')](respondWithResult(_0x139661,0xc9))[_0x700e('0x44')](handleError(_0x139661,null));};exports[_0x700e('0x4a')]=function(_0x5563dd,_0x1889eb){if(_0x5563dd[_0x700e('0x49')]['id']){delete _0x5563dd[_0x700e('0x49')]['id'];}return db[_0x700e('0x29')]['find']({'where':{'id':_0x5563dd[_0x700e('0x46')]['id']}})[_0x700e('0x23')](handleEntityNotFound(_0x1889eb,null))[_0x700e('0x23')](saveUpdates(_0x5563dd['body'],null))['then'](respondWithResult(_0x1889eb,null))['catch'](handleError(_0x1889eb,null));};exports[_0x700e('0x22')]=function(_0x397518,_0x58db8a){return db[_0x700e('0x29')][_0x700e('0x47')]({'where':{'id':_0x397518[_0x700e('0x46')]['id']}})['then'](handleEntityNotFound(_0x58db8a,null))[_0x700e('0x23')](removeEntity(_0x58db8a,null))[_0x700e('0x44')](handleError(_0x58db8a,null));};exports[_0x700e('0x4b')]=function(_0x5629b8,_0x4fd0ad,_0x3379ef){var _0x18c05c={};var _0x497e93={};var _0x3c1d22;var _0x1dbdf4;return db[_0x700e('0x29')][_0x700e('0x4c')]({'where':{'id':_0x5629b8['params']['id']}})['then'](handleEntityNotFound(_0x4fd0ad,null))['then'](function(_0x2b556d){if(_0x2b556d){_0x3c1d22=_0x2b556d;_0x497e93[_0x700e('0x34')]=_[_0x700e('0x2f')](db['SalesforceConfiguration'][_0x700e('0x2a')]);_0x497e93['query']=_[_0x700e('0x2f')](_0x5629b8[_0x700e('0x2e')]);_0x497e93[_0x700e('0x3b')]=_[_0x700e('0x30')](_0x497e93[_0x700e('0x34')],_0x497e93[_0x700e('0x2e')]);_0x18c05c[_0x700e('0x31')]=_[_0x700e('0x30')](_0x497e93[_0x700e('0x34')],qs[_0x700e('0x32')](_0x5629b8[_0x700e('0x2e')]['fields']));_0x18c05c[_0x700e('0x31')]=_0x18c05c[_0x700e('0x31')][_0x700e('0x33')]?_0x18c05c[_0x700e('0x31')]:_0x497e93[_0x700e('0x34')];_0x18c05c[_0x700e('0x37')]=qs['sort'](_0x5629b8[_0x700e('0x2e')][_0x700e('0x38')]);_0x18c05c[_0x700e('0x39')]=qs['filters'](_[_0x700e('0x3a')](_0x5629b8[_0x700e('0x2e')],_0x497e93[_0x700e('0x3b')]));if(_0x5629b8[_0x700e('0x2e')]['filter']){_0x18c05c[_0x700e('0x39')]=_[_0x700e('0x3c')](_0x18c05c['where'],{'$or':_[_0x700e('0x28')](_0x18c05c[_0x700e('0x31')],function(_0x1e82ad){var _0x4eabe1={};_0x4eabe1[_0x1e82ad]={'$like':'%'+_0x5629b8[_0x700e('0x2e')][_0x700e('0x3e')]+'%'};return _0x4eabe1;})});}_0x18c05c=_[_0x700e('0x3c')]({},_0x18c05c,_0x5629b8[_0x700e('0x3f')]);return _0x3c1d22['getConfigurations'](_0x18c05c);}})[_0x700e('0x23')](function(_0x2d6bb1){if(_0x2d6bb1){_0x1dbdf4=_0x2d6bb1[_0x700e('0x33')];if(!_0x5629b8[_0x700e('0x2e')][_0x700e('0x4d')]('nolimit')){_0x18c05c[_0x700e('0x1b')]=qs[_0x700e('0x1b')](_0x5629b8[_0x700e('0x2e')][_0x700e('0x1b')]);_0x18c05c[_0x700e('0x36')]=qs[_0x700e('0x36')](_0x5629b8[_0x700e('0x2e')][_0x700e('0x36')]);}return _0x3c1d22[_0x700e('0x4b')](_0x18c05c);}})[_0x700e('0x23')](function(_0x43e741){if(_0x43e741){return _0x43e741?{'count':_0x1dbdf4,'rows':_0x43e741}:null;}})[_0x700e('0x23')](respondWithResult(_0x4fd0ad,null))[_0x700e('0x44')](handleError(_0x4fd0ad,null));};exports[_0x700e('0x4e')]=function(_0x36211e,_0xa67e0,_0x1aace3){if(_0x36211e[_0x700e('0x49')]['id']){delete _0x36211e[_0x700e('0x49')]['id'];}return db[_0x700e('0x29')][_0x700e('0x4c')]({'where':{'id':_0x36211e[_0x700e('0x46')]['id']}})['then'](handleEntityNotFound(_0xa67e0,null))[_0x700e('0x23')](function(_0x27582b){if(_0x27582b){_0x36211e[_0x700e('0x49')]['AccountId']=_0x27582b['id'];_0x36211e['body'][_0x700e('0x4f')]=integrations[_0x700e('0x50')](_0x36211e[_0x700e('0x49')][_0x700e('0x51')],_0x36211e['body'][_0x700e('0x2c')]);_0x36211e[_0x700e('0x49')]['Descriptions']=integrations[_0x700e('0x52')](_0x36211e[_0x700e('0x49')][_0x700e('0x51')],_0x36211e[_0x700e('0x49')][_0x700e('0x2c')]);return db[_0x700e('0x53')][_0x700e('0x48')](_0x36211e[_0x700e('0x49')],{'include':[{'model':db['SalesforceField'],'as':_0x700e('0x4f')},{'model':db[_0x700e('0x54')],'as':_0x700e('0x55')}]});}return null;})[_0x700e('0x23')](respondWithResult(_0xa67e0,null))[_0x700e('0x44')](handleError(_0xa67e0,null));};exports[_0x700e('0x56')]=function(_0x1aafb5,_0x47ea3b,_0xc0a3f1){var _0x510bbd;var _0x2b6af9='';var _0x2fb450=_0x700e('0x57');return db[_0x700e('0x29')][_0x700e('0x4c')]({'where':{'id':_0x1aafb5[_0x700e('0x46')]['id']},'attributes':['id',_0x700e('0x58'),_0x700e('0x59'),_0x700e('0x5a'),'username',_0x700e('0x5b'),_0x700e('0x5c')]})['then'](handleEntityNotFound(_0x47ea3b,null))[_0x700e('0x23')](function(_0x1b9fac){if(_0x1b9fac){_0x2b6af9=_0x1b9fac[_0x700e('0x58')];var _0x3629b4=_0x2b6af9[_0x700e('0x5d')](-0x1);if(_0x3629b4==='/'){_0x2b6af9=_0x2b6af9[_0x700e('0x5e')](0x0,_0x2b6af9[_0x700e('0x5f')](_0x3629b4));}_0x510bbd=new jsforce[(_0x700e('0x60'))]({'oauth2':{'loginUrl':_0x2b6af9,'clientId':_0x1b9fac[_0x700e('0x59')],'clientSecret':_0x1b9fac[_0x700e('0x5a')]}});return _0x510bbd[_0x700e('0x61')](_0x1b9fac['username'],_0x1b9fac[_0x700e('0x5b')][_0x700e('0x62')](_0x1b9fac['securityToken']));}})[_0x700e('0x23')](function(_0x121364){if(_0x121364){if(!_['isNil'](_0x1aafb5[_0x700e('0x2e')][_0x700e('0x63')])){_0x2fb450=_0x1aafb5[_0x700e('0x2e')][_0x700e('0x63')];}return _0x510bbd[_0x700e('0x64')](_0x2fb450)[_0x700e('0x65')]();}})['then'](function(_0x509080){var _0x1f3450=[_0x700e('0x66'),_0x700e('0x67'),_0x700e('0x68'),_0x700e('0x69'),_0x700e('0x6a'),_0x700e('0x6b')];var _0x574313=['string',_0x700e('0x6c'),'picklist',_0x700e('0x6d'),_0x700e('0x6e'),_0x700e('0x6f'),_0x700e('0x70')];if(_0x509080){_['remove'](_0x509080[_0x700e('0x32')],function(_0x8b0a28){return _0x1f3450[_0x700e('0x71')](_0x8b0a28['name'])||!_0x574313[_0x700e('0x71')](_0x8b0a28[_0x700e('0x2c')]);});return{'count':_0x509080[_0x700e('0x32')][_0x700e('0x33')],'rows':_[_0x700e('0x28')](_0x509080[_0x700e('0x32')],function(_0x49480d){return{'id':_0x49480d[_0x700e('0x26')],'name':_0x49480d['label'],'custom':_0x49480d[_0x700e('0x72')],'options':_0x49480d[_0x700e('0x73')][_0x700e('0x33')]>0x0?_['map'](_0x49480d[_0x700e('0x73')],function(_0x285d53){return{'name':_0x285d53[_0x700e('0x74')],'value':_0x285d53[_0x700e('0x75')]};}):_0x49480d[_0x700e('0x2c')]=='boolean'?[{'name':_0x700e('0x76'),'value':_0x700e('0x77')},{'name':_0x700e('0x78'),'value':_0x700e('0x79')}]:[]};})};}})[_0x700e('0x23')](respondWithResult(_0x47ea3b,null))[_0x700e('0x44')](function(_0x5a8ed0){var _0x1872f2=_0x1aafb5[_0x700e('0x2e')][_0x700e('0x7a')]?0x1f4:_0x5a8ed0[_0x700e('0x7b')]||0x1f4;logger[_0x700e('0x7c')](_0x700e('0x7d'),_0x700e('0x56'),_0x1872f2,JSON[_0x700e('0x7e')](_0x5a8ed0));delete _0x5a8ed0['name'];if(_0x1872f2===0x191){_0x1872f2=0x190;}_0x47ea3b[_0x700e('0x18')](_0x1872f2)['send'](_0x1aafb5[_0x700e('0x2e')][_0x700e('0x7a')]?{'message':'Wrong\x20credentials','statusCode':_0x5a8ed0['statusCode']}:_0x5a8ed0);});};