f6affa1c92c9496b735189b9c1fe8005e42539fd
[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 _0x4ed3=['fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','update','destroy','end','error','stack','name','send','index','map','SalesforceAccount','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','fields','attributes','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','options','include','then','params','includeAll','create','body','find','catch','findOne','length','getConfigurations','addConfiguration','Subjects','getSubjects','channel','Descriptions','getDescriptions','SalesforceField','getFields','Task','remoteUri','clientId','clientSecret','username','password','securityToken','slice','lastIndexOf','Connection','login','isNil','ticketType','sobject','describe','OwnerId','IsRecurrence','string','int','boolean','textarea','phone','remove','includes','label','picklistValues','value','True','true','getFields,\x20%s,\x20%s,\x20%s','stringify','test','Wrong\x20credentials','statusCode','eml-format','zip-dir'];(function(_0x318722,_0x272f57){var _0x1f853a=function(_0x40c0dc){while(--_0x40c0dc){_0x318722['push'](_0x318722['shift']());}};_0x1f853a(++_0x272f57);}(_0x4ed3,0x1d6));var _0x34ed=function(_0x5a0a49,_0x4e5d00){_0x5a0a49=_0x5a0a49-0x0;var _0x2d3b8e=_0x4ed3[_0x5a0a49];return _0x2d3b8e;};'use strict';var emlformat=require(_0x34ed('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x34ed('0x1'));var jsonpatch=require(_0x34ed('0x2'));var rp=require(_0x34ed('0x3'));var moment=require(_0x34ed('0x4'));var BPromise=require(_0x34ed('0x5'));var Mustache=require(_0x34ed('0x6'));var util=require('util');var path=require(_0x34ed('0x7'));var sox=require(_0x34ed('0x8'));var csv=require(_0x34ed('0x9'));var ejs=require(_0x34ed('0xa'));var fs=require('fs');var fs_extra=require(_0x34ed('0xb'));var _=require(_0x34ed('0xc'));var squel=require('squel');var crypto=require(_0x34ed('0xd'));var jsforce=require(_0x34ed('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x34ed('0x9'));var querystring=require(_0x34ed('0xf'));var Papa=require('papaparse');var Redis=require(_0x34ed('0x10'));var authService=require(_0x34ed('0x11'));var qs=require(_0x34ed('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0x34ed('0x13'));var config=require(_0x34ed('0x14'));var licenseUtil=require(_0x34ed('0x15'));var db=require(_0x34ed('0x16'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x4278ae,_0x2105a3){_0x2105a3=_0x2105a3||0xcc;return function(_0x583e8e){if(_0x583e8e){return _0x4278ae[_0x34ed('0x17')](_0x2105a3);}return _0x4278ae[_0x34ed('0x18')](_0x2105a3)['end']();};}function respondWithResult(_0x104865,_0x2a5322){_0x2a5322=_0x2a5322||0xc8;return function(_0x77f6ec){if(_0x77f6ec){return _0x104865[_0x34ed('0x18')](_0x2a5322)['json'](_0x77f6ec);}};}function respondWithFilteredResult(_0x5a531e,_0x5bfe1d){return function(_0x1ff4d7){if(_0x1ff4d7){var _0x2c9ca7=typeof _0x5bfe1d[_0x34ed('0x19')]===_0x34ed('0x1a')&&typeof _0x5bfe1d[_0x34ed('0x1b')]===_0x34ed('0x1a');var _0x2b296e=_0x1ff4d7['count'];var _0x4b3cc1=_0x2c9ca7?0x0:_0x5bfe1d[_0x34ed('0x19')];var _0xc4c21c=_0x2c9ca7?_0x1ff4d7[_0x34ed('0x1c')]:_0x5bfe1d[_0x34ed('0x19')]+_0x5bfe1d[_0x34ed('0x1b')];var _0x13f6be;if(_0xc4c21c>=_0x2b296e){_0xc4c21c=_0x2b296e;_0x13f6be=0xc8;}else{_0x13f6be=0xce;}_0x5a531e[_0x34ed('0x18')](_0x13f6be);return _0x5a531e[_0x34ed('0x1d')](_0x34ed('0x1e'),_0x4b3cc1+'-'+_0xc4c21c+'/'+_0x2b296e)[_0x34ed('0x1f')](_0x1ff4d7);}return null;};}function patchUpdates(_0x494643){return function(_0x10c2f1){try{jsonpatch[_0x34ed('0x20')](_0x10c2f1,_0x494643,!![]);}catch(_0x4d23ee){return BPromise[_0x34ed('0x21')](_0x4d23ee);}return _0x10c2f1[_0x34ed('0x22')]();};}function saveUpdates(_0x1f4658,_0x3d9eb6){return function(_0x4cab92){if(_0x4cab92){return _0x4cab92[_0x34ed('0x23')](_0x1f4658)['then'](function(_0x5ebda8){return _0x5ebda8;});}return null;};}function removeEntity(_0x4c7bc3,_0xa9132d){return function(_0x3b3091){if(_0x3b3091){return _0x3b3091[_0x34ed('0x24')]()['then'](function(){_0x4c7bc3[_0x34ed('0x18')](0xcc)[_0x34ed('0x25')]();});}};}function handleEntityNotFound(_0x53149b,_0x25fc50){return function(_0x502889){if(!_0x502889){_0x53149b[_0x34ed('0x17')](0x194);}return _0x502889;};}function handleError(_0x4d36f9,_0x5b8a31){_0x5b8a31=_0x5b8a31||0x1f4;return function(_0x776438){logger[_0x34ed('0x26')](_0x776438[_0x34ed('0x27')]);if(_0x776438[_0x34ed('0x28')]){delete _0x776438[_0x34ed('0x28')];}_0x4d36f9[_0x34ed('0x18')](_0x5b8a31)[_0x34ed('0x29')](_0x776438);};}exports[_0x34ed('0x2a')]=function(_0x125fcb,_0x14acfc){var _0x892152={},_0x31c3e2={},_0x293374={'count':0x0,'rows':[]};var _0x3dd905=_[_0x34ed('0x2b')](db[_0x34ed('0x2c')][_0x34ed('0x2d')],function(_0x496b32){return{'name':_0x496b32[_0x34ed('0x2e')],'type':_0x496b32[_0x34ed('0x2f')][_0x34ed('0x30')]};});_0x31c3e2['model']=_[_0x34ed('0x2b')](_0x3dd905,_0x34ed('0x28'));_0x31c3e2[_0x34ed('0x31')]=_[_0x34ed('0x32')](_0x125fcb[_0x34ed('0x31')]);_0x31c3e2[_0x34ed('0x33')]=_[_0x34ed('0x34')](_0x31c3e2[_0x34ed('0x35')],_0x31c3e2[_0x34ed('0x31')]);_0x892152['attributes']=_['intersection'](_0x31c3e2['model'],qs[_0x34ed('0x36')](_0x125fcb[_0x34ed('0x31')]['fields']));_0x892152[_0x34ed('0x37')]=_0x892152[_0x34ed('0x37')]['length']?_0x892152[_0x34ed('0x37')]:_0x31c3e2[_0x34ed('0x35')];if(!_0x125fcb[_0x34ed('0x31')][_0x34ed('0x38')](_0x34ed('0x39'))){_0x892152[_0x34ed('0x1b')]=qs[_0x34ed('0x1b')](_0x125fcb['query'][_0x34ed('0x1b')]);_0x892152[_0x34ed('0x19')]=qs[_0x34ed('0x19')](_0x125fcb['query'][_0x34ed('0x19')]);}_0x892152[_0x34ed('0x3a')]=qs[_0x34ed('0x3b')](_0x125fcb[_0x34ed('0x31')][_0x34ed('0x3b')]);_0x892152['where']=qs[_0x34ed('0x33')](_[_0x34ed('0x3c')](_0x125fcb[_0x34ed('0x31')],_0x31c3e2['filters']),_0x3dd905);if(_0x125fcb['query'][_0x34ed('0x3d')]){_0x892152[_0x34ed('0x3e')]=_[_0x34ed('0x3f')](_0x892152[_0x34ed('0x3e')],{'$or':_[_0x34ed('0x2b')](_0x3dd905,function(_0x152291){if(_0x152291[_0x34ed('0x2f')]!=='VIRTUAL'){var _0x722a0c={};_0x722a0c[_0x152291[_0x34ed('0x28')]]={'$like':'%'+_0x125fcb[_0x34ed('0x31')]['filter']+'%'};return _0x722a0c;}})});}_0x892152=_['merge']({},_0x892152,_0x125fcb[_0x34ed('0x40')]);var _0x30e1bb={'where':_0x892152[_0x34ed('0x3e')]};return db[_0x34ed('0x2c')]['count'](_0x30e1bb)['then'](function(_0x132e91){_0x293374[_0x34ed('0x1c')]=_0x132e91;if(_0x125fcb[_0x34ed('0x31')]['includeAll']){_0x892152[_0x34ed('0x41')]=[{'all':!![]}];}return db[_0x34ed('0x2c')]['findAll'](_0x892152);})['then'](function(_0x55adf2){_0x293374['rows']=_0x55adf2;return _0x293374;})[_0x34ed('0x42')](respondWithFilteredResult(_0x14acfc,_0x892152))['catch'](handleError(_0x14acfc,null));};exports['show']=function(_0x59533f,_0xf2aa6b){var _0x4ebd84={'raw':![],'where':{'id':_0x59533f[_0x34ed('0x43')]['id']}},_0x2861ca={};_0x2861ca[_0x34ed('0x35')]=_[_0x34ed('0x32')](db[_0x34ed('0x2c')][_0x34ed('0x2d')]);_0x2861ca[_0x34ed('0x31')]=_['keys'](_0x59533f[_0x34ed('0x31')]);_0x2861ca[_0x34ed('0x33')]=_[_0x34ed('0x34')](_0x2861ca[_0x34ed('0x35')],_0x2861ca[_0x34ed('0x31')]);_0x4ebd84[_0x34ed('0x37')]=_[_0x34ed('0x34')](_0x2861ca[_0x34ed('0x35')],qs['fields'](_0x59533f['query']['fields']));_0x4ebd84[_0x34ed('0x37')]=_0x4ebd84[_0x34ed('0x37')]['length']?_0x4ebd84[_0x34ed('0x37')]:_0x2861ca[_0x34ed('0x35')];if(_0x59533f[_0x34ed('0x31')][_0x34ed('0x44')]){_0x4ebd84['include']=[{'all':!![]}];}_0x4ebd84=_['merge']({},_0x4ebd84,_0x59533f[_0x34ed('0x40')]);return db[_0x34ed('0x2c')]['find'](_0x4ebd84)['then'](handleEntityNotFound(_0xf2aa6b,null))['then'](respondWithResult(_0xf2aa6b,null))['catch'](handleError(_0xf2aa6b,null));};exports['create']=function(_0x7ea2db,_0x48e6c4){return db[_0x34ed('0x2c')][_0x34ed('0x45')](_0x7ea2db[_0x34ed('0x46')],{})['then'](respondWithResult(_0x48e6c4,0xc9))['catch'](handleError(_0x48e6c4,null));};exports[_0x34ed('0x23')]=function(_0x5eae90,_0x24df17){if(_0x5eae90[_0x34ed('0x46')]['id']){delete _0x5eae90[_0x34ed('0x46')]['id'];}return db[_0x34ed('0x2c')][_0x34ed('0x47')]({'where':{'id':_0x5eae90['params']['id']}})[_0x34ed('0x42')](handleEntityNotFound(_0x24df17,null))[_0x34ed('0x42')](saveUpdates(_0x5eae90['body'],null))[_0x34ed('0x42')](respondWithResult(_0x24df17,null))[_0x34ed('0x48')](handleError(_0x24df17,null));};exports[_0x34ed('0x24')]=function(_0x2e4765,_0x5b27e0){return db['SalesforceAccount']['find']({'where':{'id':_0x2e4765['params']['id']}})[_0x34ed('0x42')](handleEntityNotFound(_0x5b27e0,null))[_0x34ed('0x42')](removeEntity(_0x5b27e0,null))[_0x34ed('0x48')](handleError(_0x5b27e0,null));};exports['getConfigurations']=function(_0x2b63a1,_0x39ab53,_0x26c048){var _0x2735e9={};var _0x3a4ada={};var _0x333f57;var _0x324875;return db['SalesforceAccount'][_0x34ed('0x49')]({'where':{'id':_0x2b63a1['params']['id']}})[_0x34ed('0x42')](handleEntityNotFound(_0x39ab53,null))[_0x34ed('0x42')](function(_0x3979f0){if(_0x3979f0){_0x333f57=_0x3979f0;_0x3a4ada[_0x34ed('0x35')]=_[_0x34ed('0x32')](db['SalesforceConfiguration'][_0x34ed('0x2d')]);_0x3a4ada[_0x34ed('0x31')]=_[_0x34ed('0x32')](_0x2b63a1['query']);_0x3a4ada[_0x34ed('0x33')]=_[_0x34ed('0x34')](_0x3a4ada[_0x34ed('0x35')],_0x3a4ada[_0x34ed('0x31')]);_0x2735e9[_0x34ed('0x37')]=_[_0x34ed('0x34')](_0x3a4ada[_0x34ed('0x35')],qs[_0x34ed('0x36')](_0x2b63a1[_0x34ed('0x31')][_0x34ed('0x36')]));_0x2735e9[_0x34ed('0x37')]=_0x2735e9[_0x34ed('0x37')][_0x34ed('0x4a')]?_0x2735e9[_0x34ed('0x37')]:_0x3a4ada[_0x34ed('0x35')];_0x2735e9[_0x34ed('0x3a')]=qs[_0x34ed('0x3b')](_0x2b63a1[_0x34ed('0x31')][_0x34ed('0x3b')]);_0x2735e9[_0x34ed('0x3e')]=qs[_0x34ed('0x33')](_[_0x34ed('0x3c')](_0x2b63a1[_0x34ed('0x31')],_0x3a4ada[_0x34ed('0x33')]));if(_0x2b63a1['query'][_0x34ed('0x3d')]){_0x2735e9[_0x34ed('0x3e')]=_[_0x34ed('0x3f')](_0x2735e9[_0x34ed('0x3e')],{'$or':_[_0x34ed('0x2b')](_0x2735e9['attributes'],function(_0x326902){var _0x134a7a={};_0x134a7a[_0x326902]={'$like':'%'+_0x2b63a1[_0x34ed('0x31')]['filter']+'%'};return _0x134a7a;})});}_0x2735e9=_[_0x34ed('0x3f')]({},_0x2735e9,_0x2b63a1[_0x34ed('0x40')]);return _0x333f57['getConfigurations'](_0x2735e9);}})['then'](function(_0x2fbb56){if(_0x2fbb56){_0x324875=_0x2fbb56[_0x34ed('0x4a')];if(!_0x2b63a1['query'][_0x34ed('0x38')]('nolimit')){_0x2735e9[_0x34ed('0x1b')]=qs[_0x34ed('0x1b')](_0x2b63a1[_0x34ed('0x31')][_0x34ed('0x1b')]);_0x2735e9[_0x34ed('0x19')]=qs[_0x34ed('0x19')](_0x2b63a1[_0x34ed('0x31')][_0x34ed('0x19')]);}return _0x333f57[_0x34ed('0x4b')](_0x2735e9);}})[_0x34ed('0x42')](function(_0x2bdecc){if(_0x2bdecc){return _0x2bdecc?{'count':_0x324875,'rows':_0x2bdecc}:null;}})[_0x34ed('0x42')](respondWithResult(_0x39ab53,null))[_0x34ed('0x48')](handleError(_0x39ab53,null));};exports[_0x34ed('0x4c')]=function(_0x5237b2,_0x525792,_0x39c041){if(_0x5237b2[_0x34ed('0x46')]['id']){delete _0x5237b2[_0x34ed('0x46')]['id'];}return db['SalesforceAccount'][_0x34ed('0x49')]({'where':{'id':_0x5237b2[_0x34ed('0x43')]['id']}})[_0x34ed('0x42')](handleEntityNotFound(_0x525792,null))[_0x34ed('0x42')](function(_0x4ccbc6){if(_0x4ccbc6){_0x5237b2[_0x34ed('0x46')]['AccountId']=_0x4ccbc6['id'];_0x5237b2[_0x34ed('0x46')][_0x34ed('0x4d')]=integrations[_0x34ed('0x4e')](_0x5237b2[_0x34ed('0x46')][_0x34ed('0x4f')],_0x5237b2[_0x34ed('0x46')][_0x34ed('0x2f')]);_0x5237b2['body'][_0x34ed('0x50')]=integrations[_0x34ed('0x51')](_0x5237b2[_0x34ed('0x46')][_0x34ed('0x4f')],_0x5237b2['body'][_0x34ed('0x2f')]);return db['SalesforceConfiguration'][_0x34ed('0x45')](_0x5237b2[_0x34ed('0x46')],{'include':[{'model':db[_0x34ed('0x52')],'as':'Subjects'},{'model':db[_0x34ed('0x52')],'as':_0x34ed('0x50')}]});}return null;})[_0x34ed('0x42')](respondWithResult(_0x525792,null))['catch'](handleError(_0x525792,null));};exports[_0x34ed('0x53')]=function(_0xa3263f,_0xfd0d57,_0x2034d5){var _0x188b97;var _0x4b4128='';var _0x3f43c0=_0x34ed('0x54');return db[_0x34ed('0x2c')][_0x34ed('0x49')]({'where':{'id':_0xa3263f[_0x34ed('0x43')]['id']},'attributes':['id',_0x34ed('0x55'),_0x34ed('0x56'),_0x34ed('0x57'),_0x34ed('0x58'),_0x34ed('0x59'),_0x34ed('0x5a')]})[_0x34ed('0x42')](handleEntityNotFound(_0xfd0d57,null))[_0x34ed('0x42')](function(_0x3730d1){if(_0x3730d1){_0x4b4128=_0x3730d1[_0x34ed('0x55')];var _0x1f1785=_0x4b4128[_0x34ed('0x5b')](-0x1);if(_0x1f1785==='/'){_0x4b4128=_0x4b4128['substring'](0x0,_0x4b4128[_0x34ed('0x5c')](_0x1f1785));}_0x188b97=new jsforce[(_0x34ed('0x5d'))]({'oauth2':{'loginUrl':_0x4b4128,'clientId':_0x3730d1[_0x34ed('0x56')],'clientSecret':_0x3730d1[_0x34ed('0x57')]}});return _0x188b97[_0x34ed('0x5e')](_0x3730d1[_0x34ed('0x58')],_0x3730d1[_0x34ed('0x59')]['concat'](_0x3730d1['securityToken']));}})[_0x34ed('0x42')](function(_0x257187){if(_0x257187){if(!_[_0x34ed('0x5f')](_0xa3263f[_0x34ed('0x31')][_0x34ed('0x60')])){_0x3f43c0=_0xa3263f[_0x34ed('0x31')][_0x34ed('0x60')];}return _0x188b97[_0x34ed('0x61')](_0x3f43c0)[_0x34ed('0x62')]();}})[_0x34ed('0x42')](function(_0x41640f){var _0xc409f9=[_0x34ed('0x63'),'ActivityDate','IsReminderSet',_0x34ed('0x64'),'Subject','Description'];var _0x3fafe=[_0x34ed('0x65'),_0x34ed('0x66'),'picklist',_0x34ed('0x67'),'email',_0x34ed('0x68'),_0x34ed('0x69')];if(_0x41640f){_[_0x34ed('0x6a')](_0x41640f['fields'],function(_0x576ce6){return _0xc409f9[_0x34ed('0x6b')](_0x576ce6[_0x34ed('0x28')])||!_0x3fafe[_0x34ed('0x6b')](_0x576ce6[_0x34ed('0x2f')]);});return{'count':_0x41640f[_0x34ed('0x36')][_0x34ed('0x4a')],'rows':_['map'](_0x41640f[_0x34ed('0x36')],function(_0x25323a){return{'id':_0x25323a[_0x34ed('0x28')],'name':_0x25323a[_0x34ed('0x6c')],'custom':_0x25323a['custom'],'options':_0x25323a[_0x34ed('0x6d')][_0x34ed('0x4a')]>0x0?_[_0x34ed('0x2b')](_0x25323a[_0x34ed('0x6d')],function(_0x2432c2){return{'name':_0x2432c2['label'],'value':_0x2432c2[_0x34ed('0x6e')]};}):_0x25323a[_0x34ed('0x2f')]==_0x34ed('0x67')?[{'name':_0x34ed('0x6f'),'value':_0x34ed('0x70')},{'name':'False','value':'false'}]:[]};})};}})[_0x34ed('0x42')](respondWithResult(_0xfd0d57,null))[_0x34ed('0x48')](function(_0x5f3545){var _0x23acf0=_0xa3263f[_0x34ed('0x31')]['test']?0x1f4:_0x5f3545['statusCode']||0x1f4;logger[_0x34ed('0x26')](_0x34ed('0x71'),_0x34ed('0x53'),_0x23acf0,JSON[_0x34ed('0x72')](_0x5f3545));delete _0x5f3545[_0x34ed('0x28')];if(_0x23acf0===0x191){_0x23acf0=0x190;}_0xfd0d57[_0x34ed('0x18')](_0x23acf0)['send'](_0xa3263f['query'][_0x34ed('0x73')]?{'message':_0x34ed('0x74'),'statusCode':_0x5f3545[_0x34ed('0x75')]}:_0x5f3545);});};