b570ce7eccdf6ba6e9bbb1099cfe43c3bb2f1758
[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 _0x19c5=['querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../components/integrations/configuration','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','end','sendStatus','stack','name','index','map','fieldName','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','type','SalesforceAccount','includeAll','include','rows','catch','params','rawAttributes','options','find','create','body','destroy','getConfigurations','findOne','SalesforceConfiguration','addConfiguration','Subjects','getSubjects','channel','getDescriptions','SalesforceField','Descriptions','getFields','Task','remoteUri','clientId','clientSecret','password','slice','substring','lastIndexOf','Connection','login','concat','securityToken','isNil','ticketType','sobject','describe','ActivityDate','IsReminderSet','IsRecurrence','Description','picklist','boolean','email','textarea','phone','remove','includes','label','custom','picklistValues','value','True','False','test','error','getFields,\x20%s,\x20%s,\x20%s','stringify','send','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js'];(function(_0x39cad6,_0x1edf41){var _0x5a82f2=function(_0x416563){while(--_0x416563){_0x39cad6['push'](_0x39cad6['shift']());}};_0x5a82f2(++_0x1edf41);}(_0x19c5,0x6c));var _0x519c=function(_0xfb0cfd,_0x500179){_0xfb0cfd=_0xfb0cfd-0x0;var _0x2fd8aa=_0x19c5[_0xfb0cfd];return _0x2fd8aa;};'use strict';var emlformat=require(_0x519c('0x0'));var rimraf=require(_0x519c('0x1'));var zipdir=require(_0x519c('0x2'));var jsonpatch=require(_0x519c('0x3'));var rp=require(_0x519c('0x4'));var moment=require(_0x519c('0x5'));var BPromise=require(_0x519c('0x6'));var Mustache=require(_0x519c('0x7'));var util=require(_0x519c('0x8'));var path=require(_0x519c('0x9'));var sox=require(_0x519c('0xa'));var csv=require(_0x519c('0xb'));var ejs=require(_0x519c('0xc'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x519c('0xd'));var squel=require(_0x519c('0xe'));var crypto=require(_0x519c('0xf'));var jsforce=require(_0x519c('0x10'));var deskjs=require(_0x519c('0x11'));var toCsv=require(_0x519c('0xb'));var querystring=require(_0x519c('0x12'));var Papa=require('papaparse');var Redis=require(_0x519c('0x13'));var authService=require(_0x519c('0x14'));var qs=require(_0x519c('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x519c('0x16'));var logger=require('../../config/logger')(_0x519c('0x17'));var utils=require(_0x519c('0x18'));var config=require(_0x519c('0x19'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var integrations=require(_0x519c('0x1a'));function respondWithStatusCode(_0x100121,_0x15aa2f){_0x15aa2f=_0x15aa2f||0xcc;return function(_0x5a69db){if(_0x5a69db){return _0x100121['sendStatus'](_0x15aa2f);}return _0x100121[_0x519c('0x1b')](_0x15aa2f)['end']();};}function respondWithResult(_0x541ae6,_0x5a1cde){_0x5a1cde=_0x5a1cde||0xc8;return function(_0x88bd2e){if(_0x88bd2e){return _0x541ae6[_0x519c('0x1b')](_0x5a1cde)[_0x519c('0x1c')](_0x88bd2e);}};}function respondWithFilteredResult(_0x2ab6a4,_0x446deb){return function(_0x4b2733){if(_0x4b2733){var _0x29c6ef=typeof _0x446deb[_0x519c('0x1d')]===_0x519c('0x1e')&&typeof _0x446deb[_0x519c('0x1f')]===_0x519c('0x1e');var _0x371b7d=_0x4b2733[_0x519c('0x20')];var _0x48175d=_0x29c6ef?0x0:_0x446deb['offset'];var _0xfe0f4a=_0x29c6ef?_0x4b2733[_0x519c('0x20')]:_0x446deb[_0x519c('0x1d')]+_0x446deb['limit'];var _0x2f488d;if(_0xfe0f4a>=_0x371b7d){_0xfe0f4a=_0x371b7d;_0x2f488d=0xc8;}else{_0x2f488d=0xce;}_0x2ab6a4[_0x519c('0x1b')](_0x2f488d);return _0x2ab6a4[_0x519c('0x21')](_0x519c('0x22'),_0x48175d+'-'+_0xfe0f4a+'/'+_0x371b7d)[_0x519c('0x1c')](_0x4b2733);}return null;};}function patchUpdates(_0x44bc22){return function(_0x826d37){try{jsonpatch[_0x519c('0x23')](_0x826d37,_0x44bc22,!![]);}catch(_0x5725c4){return BPromise[_0x519c('0x24')](_0x5725c4);}return _0x826d37[_0x519c('0x25')]();};}function saveUpdates(_0x12d8be,_0x3b76a7){return function(_0x15cab1){if(_0x15cab1){return _0x15cab1[_0x519c('0x26')](_0x12d8be)[_0x519c('0x27')](function(_0x568628){return _0x568628;});}return null;};}function removeEntity(_0x3a172b,_0x822946){return function(_0x162700){if(_0x162700){return _0x162700['destroy']()[_0x519c('0x27')](function(){_0x3a172b[_0x519c('0x1b')](0xcc)[_0x519c('0x28')]();});}};}function handleEntityNotFound(_0x501793,_0x2ea3bd){return function(_0x160165){if(!_0x160165){_0x501793[_0x519c('0x29')](0x194);}return _0x160165;};}function handleError(_0x21c40b,_0x8bcd8e){_0x8bcd8e=_0x8bcd8e||0x1f4;return function(_0x487149){logger['error'](_0x487149[_0x519c('0x2a')]);if(_0x487149[_0x519c('0x2b')]){delete _0x487149[_0x519c('0x2b')];}_0x21c40b[_0x519c('0x1b')](_0x8bcd8e)['send'](_0x487149);};}exports[_0x519c('0x2c')]=function(_0x5886f1,_0x320739){var _0x186d23={},_0x18731a={},_0x173504={'count':0x0,'rows':[]};var _0x12ced6=_[_0x519c('0x2d')](db['SalesforceAccount']['rawAttributes'],function(_0x4f6aac){return{'name':_0x4f6aac[_0x519c('0x2e')],'type':_0x4f6aac['type']['key']};});_0x18731a['model']=_['map'](_0x12ced6,_0x519c('0x2b'));_0x18731a[_0x519c('0x2f')]=_[_0x519c('0x30')](_0x5886f1[_0x519c('0x2f')]);_0x18731a[_0x519c('0x31')]=_[_0x519c('0x32')](_0x18731a[_0x519c('0x33')],_0x18731a['query']);_0x186d23[_0x519c('0x34')]=_[_0x519c('0x32')](_0x18731a[_0x519c('0x33')],qs[_0x519c('0x35')](_0x5886f1[_0x519c('0x2f')][_0x519c('0x35')]));_0x186d23[_0x519c('0x34')]=_0x186d23[_0x519c('0x34')][_0x519c('0x36')]?_0x186d23['attributes']:_0x18731a[_0x519c('0x33')];if(!_0x5886f1[_0x519c('0x2f')][_0x519c('0x37')](_0x519c('0x38'))){_0x186d23['limit']=qs[_0x519c('0x1f')](_0x5886f1[_0x519c('0x2f')][_0x519c('0x1f')]);_0x186d23['offset']=qs['offset'](_0x5886f1[_0x519c('0x2f')][_0x519c('0x1d')]);}_0x186d23[_0x519c('0x39')]=qs[_0x519c('0x3a')](_0x5886f1['query'][_0x519c('0x3a')]);_0x186d23['where']=qs[_0x519c('0x31')](_[_0x519c('0x3b')](_0x5886f1[_0x519c('0x2f')],_0x18731a['filters']),_0x12ced6);if(_0x5886f1['query'][_0x519c('0x3c')]){_0x186d23[_0x519c('0x3d')]=_[_0x519c('0x3e')](_0x186d23[_0x519c('0x3d')],{'$or':_[_0x519c('0x2d')](_0x12ced6,function(_0x5ee9b5){if(_0x5ee9b5[_0x519c('0x3f')]!=='VIRTUAL'){var _0x584446={};_0x584446[_0x5ee9b5[_0x519c('0x2b')]]={'$like':'%'+_0x5886f1[_0x519c('0x2f')][_0x519c('0x3c')]+'%'};return _0x584446;}})});}_0x186d23=_[_0x519c('0x3e')]({},_0x186d23,_0x5886f1['options']);var _0x289cab={'where':_0x186d23[_0x519c('0x3d')]};return db[_0x519c('0x40')][_0x519c('0x20')](_0x289cab)[_0x519c('0x27')](function(_0x1a96f8){_0x173504[_0x519c('0x20')]=_0x1a96f8;if(_0x5886f1[_0x519c('0x2f')][_0x519c('0x41')]){_0x186d23[_0x519c('0x42')]=[{'all':!![]}];}return db['SalesforceAccount']['findAll'](_0x186d23);})[_0x519c('0x27')](function(_0xa276d9){_0x173504[_0x519c('0x43')]=_0xa276d9;return _0x173504;})[_0x519c('0x27')](respondWithFilteredResult(_0x320739,_0x186d23))[_0x519c('0x44')](handleError(_0x320739,null));};exports['show']=function(_0x4180ac,_0x283f07){var _0x8db92a={'raw':![],'where':{'id':_0x4180ac[_0x519c('0x45')]['id']}},_0x4228da={};_0x4228da[_0x519c('0x33')]=_[_0x519c('0x30')](db[_0x519c('0x40')][_0x519c('0x46')]);_0x4228da['query']=_[_0x519c('0x30')](_0x4180ac[_0x519c('0x2f')]);_0x4228da[_0x519c('0x31')]=_[_0x519c('0x32')](_0x4228da[_0x519c('0x33')],_0x4228da['query']);_0x8db92a[_0x519c('0x34')]=_[_0x519c('0x32')](_0x4228da[_0x519c('0x33')],qs[_0x519c('0x35')](_0x4180ac[_0x519c('0x2f')][_0x519c('0x35')]));_0x8db92a[_0x519c('0x34')]=_0x8db92a['attributes'][_0x519c('0x36')]?_0x8db92a[_0x519c('0x34')]:_0x4228da[_0x519c('0x33')];if(_0x4180ac['query'][_0x519c('0x41')]){_0x8db92a[_0x519c('0x42')]=[{'all':!![]}];}_0x8db92a=_[_0x519c('0x3e')]({},_0x8db92a,_0x4180ac[_0x519c('0x47')]);return db['SalesforceAccount'][_0x519c('0x48')](_0x8db92a)[_0x519c('0x27')](handleEntityNotFound(_0x283f07,null))['then'](respondWithResult(_0x283f07,null))[_0x519c('0x44')](handleError(_0x283f07,null));};exports['create']=function(_0x85ea6d,_0x12cc2a){return db[_0x519c('0x40')][_0x519c('0x49')](_0x85ea6d[_0x519c('0x4a')],{})['then'](respondWithResult(_0x12cc2a,0xc9))[_0x519c('0x44')](handleError(_0x12cc2a,null));};exports['update']=function(_0x5c1a5a,_0x3815ba){if(_0x5c1a5a[_0x519c('0x4a')]['id']){delete _0x5c1a5a[_0x519c('0x4a')]['id'];}return db[_0x519c('0x40')][_0x519c('0x48')]({'where':{'id':_0x5c1a5a[_0x519c('0x45')]['id']}})[_0x519c('0x27')](handleEntityNotFound(_0x3815ba,null))[_0x519c('0x27')](saveUpdates(_0x5c1a5a[_0x519c('0x4a')],null))[_0x519c('0x27')](respondWithResult(_0x3815ba,null))[_0x519c('0x44')](handleError(_0x3815ba,null));};exports[_0x519c('0x4b')]=function(_0x195d43,_0xc2f172){return db[_0x519c('0x40')][_0x519c('0x48')]({'where':{'id':_0x195d43['params']['id']}})[_0x519c('0x27')](handleEntityNotFound(_0xc2f172,null))[_0x519c('0x27')](removeEntity(_0xc2f172,null))[_0x519c('0x44')](handleError(_0xc2f172,null));};exports[_0x519c('0x4c')]=function(_0x2ef5ce,_0x5a247c,_0x5dd10c){var _0x4b3218={};var _0x40db1c={};var _0x5b53fa;var _0x59861d;return db[_0x519c('0x40')][_0x519c('0x4d')]({'where':{'id':_0x2ef5ce[_0x519c('0x45')]['id']}})[_0x519c('0x27')](handleEntityNotFound(_0x5a247c,null))[_0x519c('0x27')](function(_0x2d2c93){if(_0x2d2c93){_0x5b53fa=_0x2d2c93;_0x40db1c[_0x519c('0x33')]=_[_0x519c('0x30')](db[_0x519c('0x4e')]['rawAttributes']);_0x40db1c[_0x519c('0x2f')]=_[_0x519c('0x30')](_0x2ef5ce[_0x519c('0x2f')]);_0x40db1c[_0x519c('0x31')]=_[_0x519c('0x32')](_0x40db1c[_0x519c('0x33')],_0x40db1c['query']);_0x4b3218[_0x519c('0x34')]=_[_0x519c('0x32')](_0x40db1c[_0x519c('0x33')],qs['fields'](_0x2ef5ce[_0x519c('0x2f')][_0x519c('0x35')]));_0x4b3218[_0x519c('0x34')]=_0x4b3218[_0x519c('0x34')][_0x519c('0x36')]?_0x4b3218[_0x519c('0x34')]:_0x40db1c['model'];_0x4b3218['order']=qs['sort'](_0x2ef5ce[_0x519c('0x2f')][_0x519c('0x3a')]);_0x4b3218[_0x519c('0x3d')]=qs[_0x519c('0x31')](_['pick'](_0x2ef5ce[_0x519c('0x2f')],_0x40db1c[_0x519c('0x31')]));if(_0x2ef5ce['query'][_0x519c('0x3c')]){_0x4b3218['where']=_[_0x519c('0x3e')](_0x4b3218['where'],{'$or':_['map'](_0x4b3218['attributes'],function(_0x4d21ed){var _0x22b608={};_0x22b608[_0x4d21ed]={'$like':'%'+_0x2ef5ce['query'][_0x519c('0x3c')]+'%'};return _0x22b608;})});}_0x4b3218=_[_0x519c('0x3e')]({},_0x4b3218,_0x2ef5ce[_0x519c('0x47')]);return _0x5b53fa[_0x519c('0x4c')](_0x4b3218);}})['then'](function(_0x1cf704){if(_0x1cf704){_0x59861d=_0x1cf704['length'];if(!_0x2ef5ce['query'][_0x519c('0x37')](_0x519c('0x38'))){_0x4b3218['limit']=qs[_0x519c('0x1f')](_0x2ef5ce[_0x519c('0x2f')][_0x519c('0x1f')]);_0x4b3218[_0x519c('0x1d')]=qs[_0x519c('0x1d')](_0x2ef5ce[_0x519c('0x2f')]['offset']);}return _0x5b53fa['getConfigurations'](_0x4b3218);}})[_0x519c('0x27')](function(_0x287e8f){if(_0x287e8f){return _0x287e8f?{'count':_0x59861d,'rows':_0x287e8f}:null;}})[_0x519c('0x27')](respondWithResult(_0x5a247c,null))[_0x519c('0x44')](handleError(_0x5a247c,null));};exports[_0x519c('0x4f')]=function(_0x1067b5,_0x3c9b26,_0x55b20d){if(_0x1067b5['body']['id']){delete _0x1067b5[_0x519c('0x4a')]['id'];}return db[_0x519c('0x40')][_0x519c('0x4d')]({'where':{'id':_0x1067b5['params']['id']}})[_0x519c('0x27')](handleEntityNotFound(_0x3c9b26,null))[_0x519c('0x27')](function(_0x44eac2){if(_0x44eac2){_0x1067b5[_0x519c('0x4a')]['AccountId']=_0x44eac2['id'];_0x1067b5[_0x519c('0x4a')][_0x519c('0x50')]=integrations[_0x519c('0x51')](_0x1067b5['body'][_0x519c('0x52')],_0x1067b5[_0x519c('0x4a')]['type']);_0x1067b5[_0x519c('0x4a')]['Descriptions']=integrations[_0x519c('0x53')](_0x1067b5['body'][_0x519c('0x52')],_0x1067b5[_0x519c('0x4a')]['type']);return db['SalesforceConfiguration'][_0x519c('0x49')](_0x1067b5[_0x519c('0x4a')],{'include':[{'model':db['SalesforceField'],'as':_0x519c('0x50')},{'model':db[_0x519c('0x54')],'as':_0x519c('0x55')}]});}return null;})[_0x519c('0x27')](respondWithResult(_0x3c9b26,null))[_0x519c('0x44')](handleError(_0x3c9b26,null));};exports[_0x519c('0x56')]=function(_0x4e5222,_0x525432,_0x2cb947){var _0x277a59;var _0x1a013f='';var _0x3f2c60=_0x519c('0x57');return db[_0x519c('0x40')]['findOne']({'where':{'id':_0x4e5222[_0x519c('0x45')]['id']},'attributes':['id',_0x519c('0x58'),_0x519c('0x59'),_0x519c('0x5a'),'username',_0x519c('0x5b'),'securityToken']})[_0x519c('0x27')](handleEntityNotFound(_0x525432,null))['then'](function(_0x2e0a87){if(_0x2e0a87){_0x1a013f=_0x2e0a87[_0x519c('0x58')];var _0x7ce3a0=_0x1a013f[_0x519c('0x5c')](-0x1);if(_0x7ce3a0==='/'){_0x1a013f=_0x1a013f[_0x519c('0x5d')](0x0,_0x1a013f[_0x519c('0x5e')](_0x7ce3a0));}_0x277a59=new jsforce[(_0x519c('0x5f'))]({'oauth2':{'loginUrl':_0x1a013f,'clientId':_0x2e0a87['clientId'],'clientSecret':_0x2e0a87[_0x519c('0x5a')]}});return _0x277a59[_0x519c('0x60')](_0x2e0a87['username'],_0x2e0a87[_0x519c('0x5b')][_0x519c('0x61')](_0x2e0a87[_0x519c('0x62')]));}})[_0x519c('0x27')](function(_0x18d479){if(_0x18d479){if(!_[_0x519c('0x63')](_0x4e5222[_0x519c('0x2f')][_0x519c('0x64')])){_0x3f2c60=_0x4e5222[_0x519c('0x2f')][_0x519c('0x64')];}return _0x277a59[_0x519c('0x65')](_0x3f2c60)[_0x519c('0x66')]();}})[_0x519c('0x27')](function(_0x1a371e){var _0x5b4451=['OwnerId',_0x519c('0x67'),_0x519c('0x68'),_0x519c('0x69'),'Subject',_0x519c('0x6a')];var _0x4911d8=['string','int',_0x519c('0x6b'),_0x519c('0x6c'),_0x519c('0x6d'),_0x519c('0x6e'),_0x519c('0x6f')];if(_0x1a371e){_[_0x519c('0x70')](_0x1a371e[_0x519c('0x35')],function(_0x359f39){return _0x5b4451[_0x519c('0x71')](_0x359f39[_0x519c('0x2b')])||!_0x4911d8[_0x519c('0x71')](_0x359f39['type']);});return{'count':_0x1a371e[_0x519c('0x35')][_0x519c('0x36')],'rows':_['map'](_0x1a371e[_0x519c('0x35')],function(_0x53a5f2){return{'id':_0x53a5f2[_0x519c('0x2b')],'name':_0x53a5f2[_0x519c('0x72')],'custom':_0x53a5f2[_0x519c('0x73')],'options':_0x53a5f2[_0x519c('0x74')][_0x519c('0x36')]>0x0?_[_0x519c('0x2d')](_0x53a5f2[_0x519c('0x74')],function(_0x52597f){return{'name':_0x52597f[_0x519c('0x72')],'value':_0x52597f[_0x519c('0x75')]};}):_0x53a5f2['type']==_0x519c('0x6c')?[{'name':_0x519c('0x76'),'value':'true'},{'name':_0x519c('0x77'),'value':'false'}]:[]};})};}})[_0x519c('0x27')](respondWithResult(_0x525432,null))[_0x519c('0x44')](function(_0x577896){var _0xff009d=_0x4e5222[_0x519c('0x2f')][_0x519c('0x78')]?0x1f4:_0x577896['statusCode']||0x1f4;logger[_0x519c('0x79')](_0x519c('0x7a'),_0x519c('0x56'),_0xff009d,JSON[_0x519c('0x7b')](_0x577896));delete _0x577896[_0x519c('0x2b')];if(_0xff009d===0x191){_0xff009d=0x190;}_0x525432['status'](_0xff009d)[_0x519c('0x7c')](_0x4e5222[_0x519c('0x2f')][_0x519c('0x78')]?{'message':_0x519c('0x7d'),'statusCode':_0x577896['statusCode']}:_0x577896);});};