daf235c43a1e03a019eff3061afad030673177b4
[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 _0x248d=['Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','lodash','squel','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','end','status','json','undefined','limit','offset','count','Content-Range','reject','save','update','destroy','then','sendStatus','error','stack','name','send','map','SalesforceAccount','rawAttributes','fieldName','type','key','model','keys','filters','intersection','query','attributes','fields','length','hasOwnProperty','order','sort','where','filter','merge','options','includeAll','include','findAll','rows','catch','params','find','create','body','getConfigurations','findOne','SalesforceConfiguration','pick','nolimit','AccountId','getSubjects','Descriptions','getDescriptions','channel','SalesforceField','Subjects','Task','remoteUri','clientSecret','username','securityToken','substring','lastIndexOf','Connection','clientId','login','password','concat','isNil','ticketType','describe','ActivityDate','IsReminderSet','Description','string','picklist','boolean','email','textarea','phone','remove','includes','picklistValues','label','True','true','false','statusCode','getFields'];(function(_0x544099,_0x372b30){var _0x20ab09=function(_0x149613){while(--_0x149613){_0x544099['push'](_0x544099['shift']());}};_0x20ab09(++_0x372b30);}(_0x248d,0x77));var _0xd248=function(_0x513e86,_0x5f27c0){_0x513e86=_0x513e86-0x0;var _0x198093=_0x248d[_0x513e86];return _0x198093;};'use strict';var emlformat=require(_0xd248('0x0'));var rimraf=require(_0xd248('0x1'));var zipdir=require(_0xd248('0x2'));var jsonpatch=require(_0xd248('0x3'));var rp=require(_0xd248('0x4'));var moment=require(_0xd248('0x5'));var BPromise=require(_0xd248('0x6'));var Mustache=require(_0xd248('0x7'));var util=require(_0xd248('0x8'));var path=require(_0xd248('0x9'));var sox=require(_0xd248('0xa'));var csv=require('to-csv');var ejs=require(_0xd248('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xd248('0xc'));var squel=require(_0xd248('0xd'));var crypto=require('crypto');var jsforce=require(_0xd248('0xe'));var deskjs=require(_0xd248('0xf'));var toCsv=require(_0xd248('0x10'));var querystring=require(_0xd248('0x11'));var Papa=require('papaparse');var Redis=require(_0xd248('0x12'));var authService=require(_0xd248('0x13'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xd248('0x14'))('api');var utils=require(_0xd248('0x15'));var config=require(_0xd248('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xd248('0x17'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x391f67,_0x3bc355){_0x3bc355=_0x3bc355||0xcc;return function(_0x40f320){if(_0x40f320){return _0x391f67['sendStatus'](_0x3bc355);}return _0x391f67['status'](_0x3bc355)[_0xd248('0x18')]();};}function respondWithResult(_0x4255fe,_0x597a2d){_0x597a2d=_0x597a2d||0xc8;return function(_0x119926){if(_0x119926){return _0x4255fe[_0xd248('0x19')](_0x597a2d)[_0xd248('0x1a')](_0x119926);}};}function respondWithFilteredResult(_0xf8c11b,_0x23530e){return function(_0x198c30){if(_0x198c30){var _0x5a50be=typeof _0x23530e['offset']===_0xd248('0x1b')&&typeof _0x23530e[_0xd248('0x1c')]===_0xd248('0x1b');var _0x1c4b56=_0x198c30['count'];var _0x6fa1f6=_0x5a50be?0x0:_0x23530e[_0xd248('0x1d')];var _0x4f8439=_0x5a50be?_0x198c30[_0xd248('0x1e')]:_0x23530e[_0xd248('0x1d')]+_0x23530e[_0xd248('0x1c')];var _0x45ce60;if(_0x4f8439>=_0x1c4b56){_0x4f8439=_0x1c4b56;_0x45ce60=0xc8;}else{_0x45ce60=0xce;}_0xf8c11b['status'](_0x45ce60);return _0xf8c11b['set'](_0xd248('0x1f'),_0x6fa1f6+'-'+_0x4f8439+'/'+_0x1c4b56)[_0xd248('0x1a')](_0x198c30);}return null;};}function patchUpdates(_0x221766){return function(_0x4f56f6){try{jsonpatch['apply'](_0x4f56f6,_0x221766,!![]);}catch(_0x39dd33){return BPromise[_0xd248('0x20')](_0x39dd33);}return _0x4f56f6[_0xd248('0x21')]();};}function saveUpdates(_0xda77be,_0x4c12c1){return function(_0x3a19d7){if(_0x3a19d7){return _0x3a19d7[_0xd248('0x22')](_0xda77be)['then'](function(_0x446ee0){return _0x446ee0;});}return null;};}function removeEntity(_0x3c1ecf,_0x5756ff){return function(_0x5aa346){if(_0x5aa346){return _0x5aa346[_0xd248('0x23')]()[_0xd248('0x24')](function(){_0x3c1ecf[_0xd248('0x19')](0xcc)[_0xd248('0x18')]();});}};}function handleEntityNotFound(_0x520e36,_0xf9ed15){return function(_0x37eec5){if(!_0x37eec5){_0x520e36[_0xd248('0x25')](0x194);}return _0x37eec5;};}function handleError(_0x2d438f,_0x5ddc9d){_0x5ddc9d=_0x5ddc9d||0x1f4;return function(_0x4d82c3){logger[_0xd248('0x26')](_0x4d82c3[_0xd248('0x27')]);if(_0x4d82c3[_0xd248('0x28')]){delete _0x4d82c3[_0xd248('0x28')];}_0x2d438f[_0xd248('0x19')](_0x5ddc9d)[_0xd248('0x29')](_0x4d82c3);};}exports['index']=function(_0x5beafb,_0x251cce){var _0x1a99dc={},_0x3b1e56={},_0x5de50c={'count':0x0,'rows':[]};var _0x118382=_[_0xd248('0x2a')](db[_0xd248('0x2b')][_0xd248('0x2c')],function(_0x1ee8fe){return{'name':_0x1ee8fe[_0xd248('0x2d')],'type':_0x1ee8fe[_0xd248('0x2e')][_0xd248('0x2f')]};});_0x3b1e56[_0xd248('0x30')]=_['map'](_0x118382,_0xd248('0x28'));_0x3b1e56['query']=_[_0xd248('0x31')](_0x5beafb['query']);_0x3b1e56[_0xd248('0x32')]=_[_0xd248('0x33')](_0x3b1e56[_0xd248('0x30')],_0x3b1e56[_0xd248('0x34')]);_0x1a99dc[_0xd248('0x35')]=_[_0xd248('0x33')](_0x3b1e56[_0xd248('0x30')],qs[_0xd248('0x36')](_0x5beafb[_0xd248('0x34')][_0xd248('0x36')]));_0x1a99dc[_0xd248('0x35')]=_0x1a99dc['attributes'][_0xd248('0x37')]?_0x1a99dc[_0xd248('0x35')]:_0x3b1e56[_0xd248('0x30')];if(!_0x5beafb[_0xd248('0x34')][_0xd248('0x38')]('nolimit')){_0x1a99dc['limit']=qs[_0xd248('0x1c')](_0x5beafb['query'][_0xd248('0x1c')]);_0x1a99dc[_0xd248('0x1d')]=qs[_0xd248('0x1d')](_0x5beafb[_0xd248('0x34')][_0xd248('0x1d')]);}_0x1a99dc[_0xd248('0x39')]=qs[_0xd248('0x3a')](_0x5beafb[_0xd248('0x34')]['sort']);_0x1a99dc[_0xd248('0x3b')]=qs[_0xd248('0x32')](_['pick'](_0x5beafb['query'],_0x3b1e56[_0xd248('0x32')]),_0x118382);if(_0x5beafb[_0xd248('0x34')][_0xd248('0x3c')]){_0x1a99dc[_0xd248('0x3b')]=_['merge'](_0x1a99dc[_0xd248('0x3b')],{'$or':_[_0xd248('0x2a')](_0x118382,function(_0x59f0bb){if(_0x59f0bb['type']!=='VIRTUAL'){var _0x34618a={};_0x34618a[_0x59f0bb[_0xd248('0x28')]]={'$like':'%'+_0x5beafb[_0xd248('0x34')][_0xd248('0x3c')]+'%'};return _0x34618a;}})});}_0x1a99dc=_[_0xd248('0x3d')]({},_0x1a99dc,_0x5beafb[_0xd248('0x3e')]);var _0x32f440={'where':_0x1a99dc['where']};return db[_0xd248('0x2b')][_0xd248('0x1e')](_0x32f440)[_0xd248('0x24')](function(_0xa381ee){_0x5de50c['count']=_0xa381ee;if(_0x5beafb[_0xd248('0x34')][_0xd248('0x3f')]){_0x1a99dc[_0xd248('0x40')]=[{'all':!![]}];}return db[_0xd248('0x2b')][_0xd248('0x41')](_0x1a99dc);})[_0xd248('0x24')](function(_0x190e06){_0x5de50c[_0xd248('0x42')]=_0x190e06;return _0x5de50c;})[_0xd248('0x24')](respondWithFilteredResult(_0x251cce,_0x1a99dc))[_0xd248('0x43')](handleError(_0x251cce,null));};exports['show']=function(_0x371aa2,_0x317eac){var _0x26601a={'raw':![],'where':{'id':_0x371aa2[_0xd248('0x44')]['id']}},_0x2c4b6a={};_0x2c4b6a[_0xd248('0x30')]=_[_0xd248('0x31')](db[_0xd248('0x2b')][_0xd248('0x2c')]);_0x2c4b6a[_0xd248('0x34')]=_[_0xd248('0x31')](_0x371aa2[_0xd248('0x34')]);_0x2c4b6a['filters']=_[_0xd248('0x33')](_0x2c4b6a[_0xd248('0x30')],_0x2c4b6a[_0xd248('0x34')]);_0x26601a['attributes']=_[_0xd248('0x33')](_0x2c4b6a['model'],qs[_0xd248('0x36')](_0x371aa2[_0xd248('0x34')][_0xd248('0x36')]));_0x26601a[_0xd248('0x35')]=_0x26601a['attributes'][_0xd248('0x37')]?_0x26601a[_0xd248('0x35')]:_0x2c4b6a[_0xd248('0x30')];if(_0x371aa2['query'][_0xd248('0x3f')]){_0x26601a[_0xd248('0x40')]=[{'all':!![]}];}_0x26601a=_[_0xd248('0x3d')]({},_0x26601a,_0x371aa2['options']);return db[_0xd248('0x2b')][_0xd248('0x45')](_0x26601a)[_0xd248('0x24')](handleEntityNotFound(_0x317eac,null))['then'](respondWithResult(_0x317eac,null))[_0xd248('0x43')](handleError(_0x317eac,null));};exports['create']=function(_0x2fc5cb,_0x15a9bf){return db[_0xd248('0x2b')][_0xd248('0x46')](_0x2fc5cb[_0xd248('0x47')],{})[_0xd248('0x24')](respondWithResult(_0x15a9bf,0xc9))[_0xd248('0x43')](handleError(_0x15a9bf,null));};exports[_0xd248('0x22')]=function(_0x51875d,_0x5b38df){if(_0x51875d[_0xd248('0x47')]['id']){delete _0x51875d[_0xd248('0x47')]['id'];}return db['SalesforceAccount']['find']({'where':{'id':_0x51875d['params']['id']}})[_0xd248('0x24')](handleEntityNotFound(_0x5b38df,null))[_0xd248('0x24')](saveUpdates(_0x51875d[_0xd248('0x47')],null))[_0xd248('0x24')](respondWithResult(_0x5b38df,null))[_0xd248('0x43')](handleError(_0x5b38df,null));};exports[_0xd248('0x23')]=function(_0x1476ac,_0x5fe366){return db[_0xd248('0x2b')]['find']({'where':{'id':_0x1476ac[_0xd248('0x44')]['id']}})[_0xd248('0x24')](handleEntityNotFound(_0x5fe366,null))[_0xd248('0x24')](removeEntity(_0x5fe366,null))[_0xd248('0x43')](handleError(_0x5fe366,null));};exports[_0xd248('0x48')]=function(_0x1c3285,_0x3a5f2e,_0x161e54){var _0x33d2fd={};var _0x222018={};var _0x5acff8;var _0x1569fd;return db['SalesforceAccount'][_0xd248('0x49')]({'where':{'id':_0x1c3285['params']['id']}})[_0xd248('0x24')](handleEntityNotFound(_0x3a5f2e,null))[_0xd248('0x24')](function(_0x260f7d){if(_0x260f7d){_0x5acff8=_0x260f7d;_0x222018['model']=_[_0xd248('0x31')](db[_0xd248('0x4a')]['rawAttributes']);_0x222018[_0xd248('0x34')]=_[_0xd248('0x31')](_0x1c3285[_0xd248('0x34')]);_0x222018[_0xd248('0x32')]=_[_0xd248('0x33')](_0x222018[_0xd248('0x30')],_0x222018[_0xd248('0x34')]);_0x33d2fd[_0xd248('0x35')]=_[_0xd248('0x33')](_0x222018[_0xd248('0x30')],qs[_0xd248('0x36')](_0x1c3285[_0xd248('0x34')][_0xd248('0x36')]));_0x33d2fd['attributes']=_0x33d2fd[_0xd248('0x35')][_0xd248('0x37')]?_0x33d2fd['attributes']:_0x222018[_0xd248('0x30')];_0x33d2fd[_0xd248('0x39')]=qs[_0xd248('0x3a')](_0x1c3285[_0xd248('0x34')]['sort']);_0x33d2fd['where']=qs[_0xd248('0x32')](_[_0xd248('0x4b')](_0x1c3285[_0xd248('0x34')],_0x222018[_0xd248('0x32')]));if(_0x1c3285[_0xd248('0x34')][_0xd248('0x3c')]){_0x33d2fd[_0xd248('0x3b')]=_[_0xd248('0x3d')](_0x33d2fd[_0xd248('0x3b')],{'$or':_[_0xd248('0x2a')](_0x33d2fd[_0xd248('0x35')],function(_0x322498){var _0x2243a0={};_0x2243a0[_0x322498]={'$like':'%'+_0x1c3285[_0xd248('0x34')][_0xd248('0x3c')]+'%'};return _0x2243a0;})});}_0x33d2fd=_[_0xd248('0x3d')]({},_0x33d2fd,_0x1c3285[_0xd248('0x3e')]);return _0x5acff8[_0xd248('0x48')](_0x33d2fd);}})[_0xd248('0x24')](function(_0x3de23f){if(_0x3de23f){_0x1569fd=_0x3de23f[_0xd248('0x37')];if(!_0x1c3285[_0xd248('0x34')][_0xd248('0x38')](_0xd248('0x4c'))){_0x33d2fd[_0xd248('0x1c')]=qs[_0xd248('0x1c')](_0x1c3285[_0xd248('0x34')][_0xd248('0x1c')]);_0x33d2fd[_0xd248('0x1d')]=qs[_0xd248('0x1d')](_0x1c3285[_0xd248('0x34')][_0xd248('0x1d')]);}return _0x5acff8[_0xd248('0x48')](_0x33d2fd);}})[_0xd248('0x24')](function(_0x627643){if(_0x627643){return _0x627643?{'count':_0x1569fd,'rows':_0x627643}:null;}})[_0xd248('0x24')](respondWithResult(_0x3a5f2e,null))[_0xd248('0x43')](handleError(_0x3a5f2e,null));};exports['addConfiguration']=function(_0x52b41f,_0x4e8afd,_0x27f338){if(_0x52b41f[_0xd248('0x47')]['id']){delete _0x52b41f['body']['id'];}return db[_0xd248('0x2b')]['findOne']({'where':{'id':_0x52b41f[_0xd248('0x44')]['id']}})[_0xd248('0x24')](handleEntityNotFound(_0x4e8afd,null))[_0xd248('0x24')](function(_0x3c8028){if(_0x3c8028){_0x52b41f['body'][_0xd248('0x4d')]=_0x3c8028['id'];_0x52b41f[_0xd248('0x47')]['Subjects']=integrations[_0xd248('0x4e')](_0x52b41f[_0xd248('0x47')]['channel'],_0x52b41f['body'][_0xd248('0x2e')]);_0x52b41f[_0xd248('0x47')][_0xd248('0x4f')]=integrations[_0xd248('0x50')](_0x52b41f[_0xd248('0x47')][_0xd248('0x51')],_0x52b41f['body'][_0xd248('0x2e')]);return db[_0xd248('0x4a')]['create'](_0x52b41f['body'],{'include':[{'model':db[_0xd248('0x52')],'as':_0xd248('0x53')},{'model':db['SalesforceField'],'as':_0xd248('0x4f')}]});}return null;})[_0xd248('0x24')](respondWithResult(_0x4e8afd,null))[_0xd248('0x43')](handleError(_0x4e8afd,null));};exports['getFields']=function(_0x5d94ea,_0x134607,_0x1b71cc){var _0x31d83d;var _0xb0c23d='';var _0x5da8a6=_0xd248('0x54');return db['SalesforceAccount']['findOne']({'where':{'id':_0x5d94ea[_0xd248('0x44')]['id']},'attributes':['id',_0xd248('0x55'),'clientId',_0xd248('0x56'),_0xd248('0x57'),'password',_0xd248('0x58')]})[_0xd248('0x24')](handleEntityNotFound(_0x134607,null))[_0xd248('0x24')](function(_0x14707a){if(_0x14707a){_0xb0c23d=_0x14707a[_0xd248('0x55')];var _0x49f48e=_0xb0c23d['slice'](-0x1);if(_0x49f48e==='/'){_0xb0c23d=_0xb0c23d[_0xd248('0x59')](0x0,_0xb0c23d[_0xd248('0x5a')](_0x49f48e));}_0x31d83d=new jsforce[(_0xd248('0x5b'))]({'oauth2':{'loginUrl':_0xb0c23d,'clientId':_0x14707a[_0xd248('0x5c')],'clientSecret':_0x14707a['clientSecret']}});return _0x31d83d[_0xd248('0x5d')](_0x14707a[_0xd248('0x57')],_0x14707a[_0xd248('0x5e')][_0xd248('0x5f')](_0x14707a[_0xd248('0x58')]));}})['then'](function(_0x33da08){if(_0x33da08){if(!_[_0xd248('0x60')](_0x5d94ea[_0xd248('0x34')]['ticketType'])){_0x5da8a6=_0x5d94ea['query'][_0xd248('0x61')];}return _0x31d83d['sobject'](_0x5da8a6)[_0xd248('0x62')]();}})[_0xd248('0x24')](function(_0x1b6db5){var _0x612a2d=['OwnerId',_0xd248('0x63'),_0xd248('0x64'),'IsRecurrence','Subject',_0xd248('0x65')];var _0x3be0ee=[_0xd248('0x66'),'int',_0xd248('0x67'),_0xd248('0x68'),_0xd248('0x69'),_0xd248('0x6a'),_0xd248('0x6b')];if(_0x1b6db5){_[_0xd248('0x6c')](_0x1b6db5['fields'],function(_0x5dd611){return _0x612a2d['includes'](_0x5dd611[_0xd248('0x28')])||!_0x3be0ee[_0xd248('0x6d')](_0x5dd611[_0xd248('0x2e')]);});return{'count':_0x1b6db5[_0xd248('0x36')][_0xd248('0x37')],'rows':_[_0xd248('0x2a')](_0x1b6db5['fields'],function(_0x5bc18a){return{'id':_0x5bc18a[_0xd248('0x28')],'name':_0x5bc18a['label'],'custom':_0x5bc18a['custom'],'options':_0x5bc18a[_0xd248('0x6e')][_0xd248('0x37')]>0x0?_['map'](_0x5bc18a[_0xd248('0x6e')],function(_0x1eb0d7){return{'name':_0x1eb0d7[_0xd248('0x6f')],'value':_0x1eb0d7['value']};}):_0x5bc18a['type']==_0xd248('0x68')?[{'name':_0xd248('0x70'),'value':_0xd248('0x71')},{'name':'False','value':_0xd248('0x72')}]:[]};})};}})[_0xd248('0x24')](respondWithResult(_0x134607,null))[_0xd248('0x43')](function(_0x337e7d){var _0x12e0a1=_0x5d94ea['query']['test']?0x1f4:_0x337e7d[_0xd248('0x73')]||0x1f4;logger[_0xd248('0x26')]('getFields,\x20%s,\x20%s,\x20%s',_0xd248('0x74'),_0x12e0a1,JSON['stringify'](_0x337e7d));delete _0x337e7d[_0xd248('0x28')];if(_0x12e0a1===0x191){_0x12e0a1=0x190;}_0x134607[_0xd248('0x19')](_0x12e0a1)['send'](_0x5d94ea[_0xd248('0x34')]['test']?{'message':_0xd248('0x75'),'statusCode':_0x337e7d[_0xd248('0x73')]}:_0x337e7d);});};