d03811d73673c64fd16ea9ffea55d38d73a6de4b
[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 _0x326f=['end','sendStatus','error','stack','name','index','map','SalesforceAccount','rawAttributes','key','keys','query','filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','type','options','then','includeAll','include','findAll','catch','show','params','find','create','body','getConfigurations','findOne','SalesforceConfiguration','addConfiguration','Subjects','channel','Descriptions','SalesforceField','Task','remoteUri','clientId','clientSecret','username','password','securityToken','slice','substring','login','concat','isNil','ticketType','describe','OwnerId','IsRecurrence','Description','int','boolean','email','textarea','phone','includes','label','custom','picklistValues','value','true','False','false','statusCode','stringify','send','Wrong\x20credentials','rimraf','zip-dir','fast-json-patch','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','json','limit','undefined','count','offset','Content-Range','apply','reject','save','update','destroy'];(function(_0x259868,_0x2f8cc8){var _0x3c0843=function(_0x4b1a97){while(--_0x4b1a97){_0x259868['push'](_0x259868['shift']());}};_0x3c0843(++_0x2f8cc8);}(_0x326f,0x1af));var _0xf326=function(_0x3063cb,_0x31b8d6){_0x3063cb=_0x3063cb-0x0;var _0x2ad0e7=_0x326f[_0x3063cb];return _0x2ad0e7;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xf326('0x0'));var zipdir=require(_0xf326('0x1'));var jsonpatch=require(_0xf326('0x2'));var rp=require('request-promise');var moment=require(_0xf326('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xf326('0x4'));var util=require(_0xf326('0x5'));var path=require(_0xf326('0x6'));var sox=require(_0xf326('0x7'));var csv=require(_0xf326('0x8'));var ejs=require(_0xf326('0x9'));var fs=require('fs');var fs_extra=require(_0xf326('0xa'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xf326('0xb'));var deskjs=require(_0xf326('0xc'));var toCsv=require(_0xf326('0x8'));var querystring=require(_0xf326('0xd'));var Papa=require(_0xf326('0xe'));var Redis=require(_0xf326('0xf'));var authService=require(_0xf326('0x10'));var qs=require(_0xf326('0x11'));var as=require(_0xf326('0x12'));var hardwareService=require(_0xf326('0x13'));var logger=require(_0xf326('0x14'))('api');var utils=require(_0xf326('0x15'));var config=require(_0xf326('0x16'));var licenseUtil=require(_0xf326('0x17'));var db=require(_0xf326('0x18'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x1d57a4,_0xadd550){_0xadd550=_0xadd550||0xcc;return function(_0x5eee6a){if(_0x5eee6a){return _0x1d57a4['sendStatus'](_0xadd550);}return _0x1d57a4[_0xf326('0x19')](_0xadd550)['end']();};}function respondWithResult(_0x3bab9c,_0x3a5f80){_0x3a5f80=_0x3a5f80||0xc8;return function(_0x19deab){if(_0x19deab){return _0x3bab9c['status'](_0x3a5f80)[_0xf326('0x1a')](_0x19deab);}};}function respondWithFilteredResult(_0x72d5f,_0x340e66){return function(_0x3136a7){if(_0x3136a7){var _0x374e0f=typeof _0x340e66['offset']==='undefined'&&typeof _0x340e66[_0xf326('0x1b')]===_0xf326('0x1c');var _0x40c47b=_0x3136a7[_0xf326('0x1d')];var _0x2b5be3=_0x374e0f?0x0:_0x340e66[_0xf326('0x1e')];var _0x5aa845=_0x374e0f?_0x3136a7[_0xf326('0x1d')]:_0x340e66[_0xf326('0x1e')]+_0x340e66[_0xf326('0x1b')];var _0x482ef1;if(_0x5aa845>=_0x40c47b){_0x5aa845=_0x40c47b;_0x482ef1=0xc8;}else{_0x482ef1=0xce;}_0x72d5f[_0xf326('0x19')](_0x482ef1);return _0x72d5f['set'](_0xf326('0x1f'),_0x2b5be3+'-'+_0x5aa845+'/'+_0x40c47b)[_0xf326('0x1a')](_0x3136a7);}return null;};}function patchUpdates(_0x4fb9c1){return function(_0x1a20ba){try{jsonpatch[_0xf326('0x20')](_0x1a20ba,_0x4fb9c1,!![]);}catch(_0x18b0dd){return BPromise[_0xf326('0x21')](_0x18b0dd);}return _0x1a20ba[_0xf326('0x22')]();};}function saveUpdates(_0xdbec2b,_0x58360d){return function(_0x236060){if(_0x236060){return _0x236060[_0xf326('0x23')](_0xdbec2b)['then'](function(_0x30556c){return _0x30556c;});}return null;};}function removeEntity(_0x346489,_0x361e99){return function(_0x58ed12){if(_0x58ed12){return _0x58ed12[_0xf326('0x24')]()['then'](function(){_0x346489['status'](0xcc)[_0xf326('0x25')]();});}};}function handleEntityNotFound(_0x143564,_0xce179d){return function(_0x25fddc){if(!_0x25fddc){_0x143564[_0xf326('0x26')](0x194);}return _0x25fddc;};}function handleError(_0x50219e,_0x35ae17){_0x35ae17=_0x35ae17||0x1f4;return function(_0x4ca96b){logger[_0xf326('0x27')](_0x4ca96b[_0xf326('0x28')]);if(_0x4ca96b['name']){delete _0x4ca96b[_0xf326('0x29')];}_0x50219e[_0xf326('0x19')](_0x35ae17)['send'](_0x4ca96b);};}exports[_0xf326('0x2a')]=function(_0x3e3a74,_0x4e221a){var _0x7cffd9={},_0x195567={},_0xf2192={'count':0x0,'rows':[]};var _0x54e0b5=_[_0xf326('0x2b')](db[_0xf326('0x2c')][_0xf326('0x2d')],function(_0x51af1c){return{'name':_0x51af1c['fieldName'],'type':_0x51af1c['type'][_0xf326('0x2e')]};});_0x195567['model']=_['map'](_0x54e0b5,_0xf326('0x29'));_0x195567['query']=_[_0xf326('0x2f')](_0x3e3a74[_0xf326('0x30')]);_0x195567[_0xf326('0x31')]=_[_0xf326('0x32')](_0x195567[_0xf326('0x33')],_0x195567[_0xf326('0x30')]);_0x7cffd9['attributes']=_['intersection'](_0x195567['model'],qs[_0xf326('0x34')](_0x3e3a74[_0xf326('0x30')][_0xf326('0x34')]));_0x7cffd9[_0xf326('0x35')]=_0x7cffd9[_0xf326('0x35')][_0xf326('0x36')]?_0x7cffd9[_0xf326('0x35')]:_0x195567[_0xf326('0x33')];if(!_0x3e3a74[_0xf326('0x30')][_0xf326('0x37')](_0xf326('0x38'))){_0x7cffd9['limit']=qs[_0xf326('0x1b')](_0x3e3a74[_0xf326('0x30')]['limit']);_0x7cffd9[_0xf326('0x1e')]=qs['offset'](_0x3e3a74[_0xf326('0x30')][_0xf326('0x1e')]);}_0x7cffd9[_0xf326('0x39')]=qs[_0xf326('0x3a')](_0x3e3a74['query']['sort']);_0x7cffd9['where']=qs[_0xf326('0x31')](_[_0xf326('0x3b')](_0x3e3a74[_0xf326('0x30')],_0x195567[_0xf326('0x31')]),_0x54e0b5);if(_0x3e3a74[_0xf326('0x30')][_0xf326('0x3c')]){_0x7cffd9[_0xf326('0x3d')]=_[_0xf326('0x3e')](_0x7cffd9['where'],{'$or':_['map'](_0x54e0b5,function(_0x5123a2){if(_0x5123a2[_0xf326('0x3f')]!=='VIRTUAL'){var _0x400f3c={};_0x400f3c[_0x5123a2['name']]={'$like':'%'+_0x3e3a74[_0xf326('0x30')][_0xf326('0x3c')]+'%'};return _0x400f3c;}})});}_0x7cffd9=_[_0xf326('0x3e')]({},_0x7cffd9,_0x3e3a74[_0xf326('0x40')]);var _0x5f08b7={'where':_0x7cffd9[_0xf326('0x3d')]};return db[_0xf326('0x2c')][_0xf326('0x1d')](_0x5f08b7)[_0xf326('0x41')](function(_0x35afca){_0xf2192[_0xf326('0x1d')]=_0x35afca;if(_0x3e3a74[_0xf326('0x30')][_0xf326('0x42')]){_0x7cffd9[_0xf326('0x43')]=[{'all':!![]}];}return db[_0xf326('0x2c')][_0xf326('0x44')](_0x7cffd9);})['then'](function(_0x56741a){_0xf2192['rows']=_0x56741a;return _0xf2192;})[_0xf326('0x41')](respondWithFilteredResult(_0x4e221a,_0x7cffd9))[_0xf326('0x45')](handleError(_0x4e221a,null));};exports[_0xf326('0x46')]=function(_0x3a827d,_0x46003e){var _0x35575d={'raw':![],'where':{'id':_0x3a827d[_0xf326('0x47')]['id']}},_0x2dd3bf={};_0x2dd3bf[_0xf326('0x33')]=_[_0xf326('0x2f')](db[_0xf326('0x2c')][_0xf326('0x2d')]);_0x2dd3bf['query']=_[_0xf326('0x2f')](_0x3a827d[_0xf326('0x30')]);_0x2dd3bf[_0xf326('0x31')]=_[_0xf326('0x32')](_0x2dd3bf[_0xf326('0x33')],_0x2dd3bf[_0xf326('0x30')]);_0x35575d[_0xf326('0x35')]=_[_0xf326('0x32')](_0x2dd3bf[_0xf326('0x33')],qs[_0xf326('0x34')](_0x3a827d['query']['fields']));_0x35575d[_0xf326('0x35')]=_0x35575d[_0xf326('0x35')]['length']?_0x35575d[_0xf326('0x35')]:_0x2dd3bf[_0xf326('0x33')];if(_0x3a827d[_0xf326('0x30')][_0xf326('0x42')]){_0x35575d['include']=[{'all':!![]}];}_0x35575d=_['merge']({},_0x35575d,_0x3a827d[_0xf326('0x40')]);return db[_0xf326('0x2c')][_0xf326('0x48')](_0x35575d)['then'](handleEntityNotFound(_0x46003e,null))[_0xf326('0x41')](respondWithResult(_0x46003e,null))[_0xf326('0x45')](handleError(_0x46003e,null));};exports[_0xf326('0x49')]=function(_0x268605,_0x3a9778){return db['SalesforceAccount'][_0xf326('0x49')](_0x268605[_0xf326('0x4a')],{})['then'](respondWithResult(_0x3a9778,0xc9))['catch'](handleError(_0x3a9778,null));};exports[_0xf326('0x23')]=function(_0x436082,_0xbc3f42){if(_0x436082[_0xf326('0x4a')]['id']){delete _0x436082['body']['id'];}return db['SalesforceAccount'][_0xf326('0x48')]({'where':{'id':_0x436082[_0xf326('0x47')]['id']}})[_0xf326('0x41')](handleEntityNotFound(_0xbc3f42,null))[_0xf326('0x41')](saveUpdates(_0x436082[_0xf326('0x4a')],null))[_0xf326('0x41')](respondWithResult(_0xbc3f42,null))[_0xf326('0x45')](handleError(_0xbc3f42,null));};exports[_0xf326('0x24')]=function(_0x150d5f,_0x5ae5af){return db[_0xf326('0x2c')][_0xf326('0x48')]({'where':{'id':_0x150d5f[_0xf326('0x47')]['id']}})[_0xf326('0x41')](handleEntityNotFound(_0x5ae5af,null))[_0xf326('0x41')](removeEntity(_0x5ae5af,null))[_0xf326('0x45')](handleError(_0x5ae5af,null));};exports[_0xf326('0x4b')]=function(_0x170fa1,_0x4591be,_0x1eb78c){var _0x4db9cc={};var _0x5314ac={};var _0x2f7b5;var _0x53dc92;return db['SalesforceAccount'][_0xf326('0x4c')]({'where':{'id':_0x170fa1[_0xf326('0x47')]['id']}})['then'](handleEntityNotFound(_0x4591be,null))['then'](function(_0x1a2546){if(_0x1a2546){_0x2f7b5=_0x1a2546;_0x5314ac[_0xf326('0x33')]=_[_0xf326('0x2f')](db[_0xf326('0x4d')]['rawAttributes']);_0x5314ac['query']=_['keys'](_0x170fa1[_0xf326('0x30')]);_0x5314ac[_0xf326('0x31')]=_['intersection'](_0x5314ac[_0xf326('0x33')],_0x5314ac[_0xf326('0x30')]);_0x4db9cc['attributes']=_['intersection'](_0x5314ac[_0xf326('0x33')],qs[_0xf326('0x34')](_0x170fa1[_0xf326('0x30')][_0xf326('0x34')]));_0x4db9cc[_0xf326('0x35')]=_0x4db9cc['attributes']['length']?_0x4db9cc[_0xf326('0x35')]:_0x5314ac[_0xf326('0x33')];_0x4db9cc[_0xf326('0x39')]=qs[_0xf326('0x3a')](_0x170fa1[_0xf326('0x30')][_0xf326('0x3a')]);_0x4db9cc[_0xf326('0x3d')]=qs['filters'](_[_0xf326('0x3b')](_0x170fa1[_0xf326('0x30')],_0x5314ac['filters']));if(_0x170fa1[_0xf326('0x30')][_0xf326('0x3c')]){_0x4db9cc[_0xf326('0x3d')]=_[_0xf326('0x3e')](_0x4db9cc[_0xf326('0x3d')],{'$or':_[_0xf326('0x2b')](_0x4db9cc[_0xf326('0x35')],function(_0x379ff6){var _0x1bcb9c={};_0x1bcb9c[_0x379ff6]={'$like':'%'+_0x170fa1['query']['filter']+'%'};return _0x1bcb9c;})});}_0x4db9cc=_[_0xf326('0x3e')]({},_0x4db9cc,_0x170fa1['options']);return _0x2f7b5[_0xf326('0x4b')](_0x4db9cc);}})[_0xf326('0x41')](function(_0x52842c){if(_0x52842c){_0x53dc92=_0x52842c['length'];if(!_0x170fa1['query'][_0xf326('0x37')](_0xf326('0x38'))){_0x4db9cc[_0xf326('0x1b')]=qs[_0xf326('0x1b')](_0x170fa1[_0xf326('0x30')]['limit']);_0x4db9cc['offset']=qs[_0xf326('0x1e')](_0x170fa1[_0xf326('0x30')]['offset']);}return _0x2f7b5[_0xf326('0x4b')](_0x4db9cc);}})[_0xf326('0x41')](function(_0x12d8b8){if(_0x12d8b8){return _0x12d8b8?{'count':_0x53dc92,'rows':_0x12d8b8}:null;}})['then'](respondWithResult(_0x4591be,null))[_0xf326('0x45')](handleError(_0x4591be,null));};exports[_0xf326('0x4e')]=function(_0x1764f4,_0x616afb,_0x191b11){if(_0x1764f4[_0xf326('0x4a')]['id']){delete _0x1764f4[_0xf326('0x4a')]['id'];}return db[_0xf326('0x2c')][_0xf326('0x4c')]({'where':{'id':_0x1764f4['params']['id']}})[_0xf326('0x41')](handleEntityNotFound(_0x616afb,null))['then'](function(_0x2fc2f6){if(_0x2fc2f6){_0x1764f4[_0xf326('0x4a')]['AccountId']=_0x2fc2f6['id'];_0x1764f4[_0xf326('0x4a')][_0xf326('0x4f')]=integrations['getSubjects'](_0x1764f4[_0xf326('0x4a')][_0xf326('0x50')],_0x1764f4['body'][_0xf326('0x3f')]);_0x1764f4[_0xf326('0x4a')][_0xf326('0x51')]=integrations['getDescriptions'](_0x1764f4[_0xf326('0x4a')]['channel'],_0x1764f4[_0xf326('0x4a')][_0xf326('0x3f')]);return db[_0xf326('0x4d')][_0xf326('0x49')](_0x1764f4['body'],{'include':[{'model':db[_0xf326('0x52')],'as':_0xf326('0x4f')},{'model':db[_0xf326('0x52')],'as':'Descriptions'}]});}return null;})[_0xf326('0x41')](respondWithResult(_0x616afb,null))['catch'](handleError(_0x616afb,null));};exports['getFields']=function(_0x31e4d4,_0x42491a,_0xb9cd3f){var _0x11ed64;var _0x26f5a4='';var _0x13acf0=_0xf326('0x53');return db[_0xf326('0x2c')][_0xf326('0x4c')]({'where':{'id':_0x31e4d4[_0xf326('0x47')]['id']},'attributes':['id',_0xf326('0x54'),_0xf326('0x55'),_0xf326('0x56'),_0xf326('0x57'),_0xf326('0x58'),_0xf326('0x59')]})['then'](handleEntityNotFound(_0x42491a,null))[_0xf326('0x41')](function(_0xbaa98e){if(_0xbaa98e){_0x26f5a4=_0xbaa98e[_0xf326('0x54')];var _0x8bbed8=_0x26f5a4[_0xf326('0x5a')](-0x1);if(_0x8bbed8==='/'){_0x26f5a4=_0x26f5a4[_0xf326('0x5b')](0x0,_0x26f5a4['lastIndexOf'](_0x8bbed8));}_0x11ed64=new jsforce['Connection']({'oauth2':{'loginUrl':_0x26f5a4,'clientId':_0xbaa98e[_0xf326('0x55')],'clientSecret':_0xbaa98e['clientSecret']}});return _0x11ed64[_0xf326('0x5c')](_0xbaa98e[_0xf326('0x57')],_0xbaa98e[_0xf326('0x58')][_0xf326('0x5d')](_0xbaa98e['securityToken']));}})['then'](function(_0xfd2cf8){if(_0xfd2cf8){if(!_[_0xf326('0x5e')](_0x31e4d4['query'][_0xf326('0x5f')])){_0x13acf0=_0x31e4d4[_0xf326('0x30')]['ticketType'];}return _0x11ed64['sobject'](_0x13acf0)[_0xf326('0x60')]();}})[_0xf326('0x41')](function(_0x3eb2d3){var _0x2244e7=[_0xf326('0x61'),'ActivityDate','IsReminderSet',_0xf326('0x62'),'Subject',_0xf326('0x63')];var _0x4e1b74=['string',_0xf326('0x64'),'picklist',_0xf326('0x65'),_0xf326('0x66'),_0xf326('0x67'),_0xf326('0x68')];if(_0x3eb2d3){_['remove'](_0x3eb2d3[_0xf326('0x34')],function(_0x70b5c3){return _0x2244e7[_0xf326('0x69')](_0x70b5c3[_0xf326('0x29')])||!_0x4e1b74[_0xf326('0x69')](_0x70b5c3[_0xf326('0x3f')]);});return{'count':_0x3eb2d3[_0xf326('0x34')][_0xf326('0x36')],'rows':_['map'](_0x3eb2d3[_0xf326('0x34')],function(_0x3df404){return{'id':_0x3df404[_0xf326('0x29')],'name':_0x3df404[_0xf326('0x6a')],'custom':_0x3df404[_0xf326('0x6b')],'options':_0x3df404[_0xf326('0x6c')]['length']>0x0?_[_0xf326('0x2b')](_0x3df404[_0xf326('0x6c')],function(_0x4f47c9){return{'name':_0x4f47c9[_0xf326('0x6a')],'value':_0x4f47c9[_0xf326('0x6d')]};}):_0x3df404[_0xf326('0x3f')]=='boolean'?[{'name':'True','value':_0xf326('0x6e')},{'name':_0xf326('0x6f'),'value':_0xf326('0x70')}]:[]};})};}})[_0xf326('0x41')](respondWithResult(_0x42491a,null))['catch'](function(_0x1d0fbf){var _0x3284ad=_0x31e4d4[_0xf326('0x30')]['test']?0x1f4:_0x1d0fbf[_0xf326('0x71')]||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s','getFields',_0x3284ad,JSON[_0xf326('0x72')](_0x1d0fbf));delete _0x1d0fbf[_0xf326('0x29')];if(_0x3284ad===0x191){_0x3284ad=0x190;}_0x42491a[_0xf326('0x19')](_0x3284ad)[_0xf326('0x73')](_0x31e4d4[_0xf326('0x30')]['test']?{'message':_0xf326('0x74'),'statusCode':_0x1d0fbf['statusCode']}:_0x1d0fbf);});};