2a340edfca621ff10a9c5f30ef2061f2d1f4cd6a
[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 _0xaf65=['../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../components/integrations/configuration','sendStatus','end','status','offset','undefined','limit','count','Content-Range','json','reject','save','update','then','destroy','error','stack','name','send','index','map','SalesforceAccount','rawAttributes','type','key','model','query','keys','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','include','rows','catch','show','params','length','options','find','create','body','getConfigurations','SalesforceConfiguration','addConfiguration','findOne','AccountId','getSubjects','channel','Descriptions','SalesforceField','remoteUri','clientId','clientSecret','username','password','securityToken','substring','lastIndexOf','Connection','login','concat','isNil','ticketType','sobject','describe','OwnerId','ActivityDate','IsRecurrence','Subject','Description','string','int','picklist','boolean','email','remove','includes','picklistValues','label','value','True','true','False','false','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','stringify','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','moment','util','to-csv','ejs','lodash','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service'];(function(_0x3844ab,_0x461e40){var _0x2a3276=function(_0x1d1176){while(--_0x1d1176){_0x3844ab['push'](_0x3844ab['shift']());}};_0x2a3276(++_0x461e40);}(_0xaf65,0x69));var _0x5af6=function(_0x1308e1,_0x5358d7){_0x1308e1=_0x1308e1-0x0;var _0xb10ccf=_0xaf65[_0x1308e1];return _0xb10ccf;};'use strict';var emlformat=require(_0x5af6('0x0'));var rimraf=require(_0x5af6('0x1'));var zipdir=require(_0x5af6('0x2'));var jsonpatch=require(_0x5af6('0x3'));var rp=require('request-promise');var moment=require(_0x5af6('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x5af6('0x5'));var path=require('path');var sox=require('sox');var csv=require(_0x5af6('0x6'));var ejs=require(_0x5af6('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x5af6('0x8'));var squel=require('squel');var crypto=require(_0x5af6('0x9'));var jsforce=require(_0x5af6('0xa'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x5af6('0xb'));var Papa=require(_0x5af6('0xc'));var Redis=require(_0x5af6('0xd'));var authService=require(_0x5af6('0xe'));var qs=require(_0x5af6('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x5af6('0x10'));var logger=require('../../config/logger')(_0x5af6('0x11'));var utils=require(_0x5af6('0x12'));var config=require('../../config/environment');var licenseUtil=require(_0x5af6('0x13'));var db=require('../../mysqldb')['db'];var integrations=require(_0x5af6('0x14'));function respondWithStatusCode(_0x31222a,_0x540349){_0x540349=_0x540349||0xcc;return function(_0x2ec396){if(_0x2ec396){return _0x31222a[_0x5af6('0x15')](_0x540349);}return _0x31222a['status'](_0x540349)[_0x5af6('0x16')]();};}function respondWithResult(_0x245f4c,_0x4f85a0){_0x4f85a0=_0x4f85a0||0xc8;return function(_0xd814e0){if(_0xd814e0){return _0x245f4c[_0x5af6('0x17')](_0x4f85a0)['json'](_0xd814e0);}};}function respondWithFilteredResult(_0x7c8ef1,_0x41a833){return function(_0x1bacd0){if(_0x1bacd0){var _0x2674dc=typeof _0x41a833[_0x5af6('0x18')]===_0x5af6('0x19')&&typeof _0x41a833[_0x5af6('0x1a')]===_0x5af6('0x19');var _0x1347a1=_0x1bacd0['count'];var _0xffa3d2=_0x2674dc?0x0:_0x41a833[_0x5af6('0x18')];var _0x336766=_0x2674dc?_0x1bacd0[_0x5af6('0x1b')]:_0x41a833[_0x5af6('0x18')]+_0x41a833['limit'];var _0x5efc31;if(_0x336766>=_0x1347a1){_0x336766=_0x1347a1;_0x5efc31=0xc8;}else{_0x5efc31=0xce;}_0x7c8ef1[_0x5af6('0x17')](_0x5efc31);return _0x7c8ef1['set'](_0x5af6('0x1c'),_0xffa3d2+'-'+_0x336766+'/'+_0x1347a1)[_0x5af6('0x1d')](_0x1bacd0);}return null;};}function patchUpdates(_0x3e1f03){return function(_0x10b4e3){try{jsonpatch['apply'](_0x10b4e3,_0x3e1f03,!![]);}catch(_0x20748a){return BPromise[_0x5af6('0x1e')](_0x20748a);}return _0x10b4e3[_0x5af6('0x1f')]();};}function saveUpdates(_0x465832,_0x237121){return function(_0x50013b){if(_0x50013b){return _0x50013b[_0x5af6('0x20')](_0x465832)[_0x5af6('0x21')](function(_0x59f6b1){return _0x59f6b1;});}return null;};}function removeEntity(_0x311cc2,_0x1adc36){return function(_0x1a5911){if(_0x1a5911){return _0x1a5911[_0x5af6('0x22')]()[_0x5af6('0x21')](function(){_0x311cc2[_0x5af6('0x17')](0xcc)[_0x5af6('0x16')]();});}};}function handleEntityNotFound(_0x273651,_0x11769e){return function(_0x4cb01a){if(!_0x4cb01a){_0x273651[_0x5af6('0x15')](0x194);}return _0x4cb01a;};}function handleError(_0x4d84ec,_0x1181d1){_0x1181d1=_0x1181d1||0x1f4;return function(_0xd90da0){logger[_0x5af6('0x23')](_0xd90da0[_0x5af6('0x24')]);if(_0xd90da0[_0x5af6('0x25')]){delete _0xd90da0[_0x5af6('0x25')];}_0x4d84ec[_0x5af6('0x17')](_0x1181d1)[_0x5af6('0x26')](_0xd90da0);};}exports[_0x5af6('0x27')]=function(_0x4dfbf5,_0x318de2){var _0x3add28={},_0x186e98={},_0x312f4e={'count':0x0,'rows':[]};var _0x3e8f6c=_[_0x5af6('0x28')](db[_0x5af6('0x29')][_0x5af6('0x2a')],function(_0x45ba2e){return{'name':_0x45ba2e['fieldName'],'type':_0x45ba2e[_0x5af6('0x2b')][_0x5af6('0x2c')]};});_0x186e98[_0x5af6('0x2d')]=_[_0x5af6('0x28')](_0x3e8f6c,_0x5af6('0x25'));_0x186e98[_0x5af6('0x2e')]=_[_0x5af6('0x2f')](_0x4dfbf5['query']);_0x186e98[_0x5af6('0x30')]=_['intersection'](_0x186e98['model'],_0x186e98[_0x5af6('0x2e')]);_0x3add28['attributes']=_[_0x5af6('0x31')](_0x186e98[_0x5af6('0x2d')],qs[_0x5af6('0x32')](_0x4dfbf5[_0x5af6('0x2e')]['fields']));_0x3add28[_0x5af6('0x33')]=_0x3add28[_0x5af6('0x33')]['length']?_0x3add28[_0x5af6('0x33')]:_0x186e98['model'];if(!_0x4dfbf5[_0x5af6('0x2e')][_0x5af6('0x34')](_0x5af6('0x35'))){_0x3add28['limit']=qs[_0x5af6('0x1a')](_0x4dfbf5[_0x5af6('0x2e')][_0x5af6('0x1a')]);_0x3add28[_0x5af6('0x18')]=qs[_0x5af6('0x18')](_0x4dfbf5['query'][_0x5af6('0x18')]);}_0x3add28[_0x5af6('0x36')]=qs[_0x5af6('0x37')](_0x4dfbf5[_0x5af6('0x2e')][_0x5af6('0x37')]);_0x3add28[_0x5af6('0x38')]=qs['filters'](_[_0x5af6('0x39')](_0x4dfbf5[_0x5af6('0x2e')],_0x186e98[_0x5af6('0x30')]),_0x3e8f6c);if(_0x4dfbf5['query'][_0x5af6('0x3a')]){_0x3add28[_0x5af6('0x38')]=_[_0x5af6('0x3b')](_0x3add28[_0x5af6('0x38')],{'$or':_[_0x5af6('0x28')](_0x3e8f6c,function(_0x55c2ed){if(_0x55c2ed[_0x5af6('0x2b')]!==_0x5af6('0x3c')){var _0x2a5f40={};_0x2a5f40[_0x55c2ed[_0x5af6('0x25')]]={'$like':'%'+_0x4dfbf5[_0x5af6('0x2e')]['filter']+'%'};return _0x2a5f40;}})});}_0x3add28=_[_0x5af6('0x3b')]({},_0x3add28,_0x4dfbf5['options']);var _0x413994={'where':_0x3add28['where']};return db['SalesforceAccount'][_0x5af6('0x1b')](_0x413994)[_0x5af6('0x21')](function(_0x8a697c){_0x312f4e[_0x5af6('0x1b')]=_0x8a697c;if(_0x4dfbf5['query']['includeAll']){_0x3add28[_0x5af6('0x3d')]=[{'all':!![]}];}return db[_0x5af6('0x29')]['findAll'](_0x3add28);})[_0x5af6('0x21')](function(_0x5a3317){_0x312f4e[_0x5af6('0x3e')]=_0x5a3317;return _0x312f4e;})[_0x5af6('0x21')](respondWithFilteredResult(_0x318de2,_0x3add28))[_0x5af6('0x3f')](handleError(_0x318de2,null));};exports[_0x5af6('0x40')]=function(_0x1b9a90,_0x106bea){var _0x59fa86={'raw':![],'where':{'id':_0x1b9a90[_0x5af6('0x41')]['id']}},_0x2e9752={};_0x2e9752[_0x5af6('0x2d')]=_['keys'](db[_0x5af6('0x29')][_0x5af6('0x2a')]);_0x2e9752[_0x5af6('0x2e')]=_[_0x5af6('0x2f')](_0x1b9a90[_0x5af6('0x2e')]);_0x2e9752[_0x5af6('0x30')]=_['intersection'](_0x2e9752[_0x5af6('0x2d')],_0x2e9752['query']);_0x59fa86['attributes']=_[_0x5af6('0x31')](_0x2e9752[_0x5af6('0x2d')],qs[_0x5af6('0x32')](_0x1b9a90['query']['fields']));_0x59fa86[_0x5af6('0x33')]=_0x59fa86['attributes'][_0x5af6('0x42')]?_0x59fa86[_0x5af6('0x33')]:_0x2e9752[_0x5af6('0x2d')];if(_0x1b9a90[_0x5af6('0x2e')]['includeAll']){_0x59fa86[_0x5af6('0x3d')]=[{'all':!![]}];}_0x59fa86=_['merge']({},_0x59fa86,_0x1b9a90[_0x5af6('0x43')]);return db[_0x5af6('0x29')][_0x5af6('0x44')](_0x59fa86)['then'](handleEntityNotFound(_0x106bea,null))[_0x5af6('0x21')](respondWithResult(_0x106bea,null))[_0x5af6('0x3f')](handleError(_0x106bea,null));};exports[_0x5af6('0x45')]=function(_0x59b48e,_0x1c3a93){return db[_0x5af6('0x29')][_0x5af6('0x45')](_0x59b48e[_0x5af6('0x46')],{})['then'](respondWithResult(_0x1c3a93,0xc9))['catch'](handleError(_0x1c3a93,null));};exports[_0x5af6('0x20')]=function(_0x596ef9,_0x56db3e){if(_0x596ef9[_0x5af6('0x46')]['id']){delete _0x596ef9[_0x5af6('0x46')]['id'];}return db[_0x5af6('0x29')][_0x5af6('0x44')]({'where':{'id':_0x596ef9['params']['id']}})[_0x5af6('0x21')](handleEntityNotFound(_0x56db3e,null))[_0x5af6('0x21')](saveUpdates(_0x596ef9[_0x5af6('0x46')],null))['then'](respondWithResult(_0x56db3e,null))[_0x5af6('0x3f')](handleError(_0x56db3e,null));};exports[_0x5af6('0x22')]=function(_0x8a51b6,_0x108622){return db[_0x5af6('0x29')][_0x5af6('0x44')]({'where':{'id':_0x8a51b6[_0x5af6('0x41')]['id']}})['then'](handleEntityNotFound(_0x108622,null))[_0x5af6('0x21')](removeEntity(_0x108622,null))['catch'](handleError(_0x108622,null));};exports[_0x5af6('0x47')]=function(_0x475579,_0x3fd05e,_0x4e3a09){var _0x16b602={};var _0x35105b={};var _0x526b65;var _0xffe663;return db[_0x5af6('0x29')]['findOne']({'where':{'id':_0x475579[_0x5af6('0x41')]['id']}})[_0x5af6('0x21')](handleEntityNotFound(_0x3fd05e,null))[_0x5af6('0x21')](function(_0x3f3197){if(_0x3f3197){_0x526b65=_0x3f3197;_0x35105b['model']=_[_0x5af6('0x2f')](db[_0x5af6('0x48')][_0x5af6('0x2a')]);_0x35105b[_0x5af6('0x2e')]=_[_0x5af6('0x2f')](_0x475579[_0x5af6('0x2e')]);_0x35105b[_0x5af6('0x30')]=_[_0x5af6('0x31')](_0x35105b['model'],_0x35105b[_0x5af6('0x2e')]);_0x16b602[_0x5af6('0x33')]=_[_0x5af6('0x31')](_0x35105b[_0x5af6('0x2d')],qs[_0x5af6('0x32')](_0x475579[_0x5af6('0x2e')][_0x5af6('0x32')]));_0x16b602[_0x5af6('0x33')]=_0x16b602[_0x5af6('0x33')][_0x5af6('0x42')]?_0x16b602[_0x5af6('0x33')]:_0x35105b[_0x5af6('0x2d')];_0x16b602['order']=qs[_0x5af6('0x37')](_0x475579[_0x5af6('0x2e')][_0x5af6('0x37')]);_0x16b602[_0x5af6('0x38')]=qs[_0x5af6('0x30')](_[_0x5af6('0x39')](_0x475579[_0x5af6('0x2e')],_0x35105b[_0x5af6('0x30')]));if(_0x475579[_0x5af6('0x2e')][_0x5af6('0x3a')]){_0x16b602[_0x5af6('0x38')]=_[_0x5af6('0x3b')](_0x16b602[_0x5af6('0x38')],{'$or':_[_0x5af6('0x28')](_0x16b602['attributes'],function(_0x176f18){var _0x3dcd39={};_0x3dcd39[_0x176f18]={'$like':'%'+_0x475579[_0x5af6('0x2e')]['filter']+'%'};return _0x3dcd39;})});}_0x16b602=_['merge']({},_0x16b602,_0x475579[_0x5af6('0x43')]);return _0x526b65[_0x5af6('0x47')](_0x16b602);}})['then'](function(_0x5bb37c){if(_0x5bb37c){_0xffe663=_0x5bb37c[_0x5af6('0x42')];if(!_0x475579[_0x5af6('0x2e')]['hasOwnProperty']('nolimit')){_0x16b602[_0x5af6('0x1a')]=qs['limit'](_0x475579[_0x5af6('0x2e')][_0x5af6('0x1a')]);_0x16b602[_0x5af6('0x18')]=qs['offset'](_0x475579[_0x5af6('0x2e')]['offset']);}return _0x526b65[_0x5af6('0x47')](_0x16b602);}})[_0x5af6('0x21')](function(_0x3c46b1){if(_0x3c46b1){return _0x3c46b1?{'count':_0xffe663,'rows':_0x3c46b1}:null;}})[_0x5af6('0x21')](respondWithResult(_0x3fd05e,null))[_0x5af6('0x3f')](handleError(_0x3fd05e,null));};exports[_0x5af6('0x49')]=function(_0xf43aba,_0x17834f,_0x21c83d){if(_0xf43aba[_0x5af6('0x46')]['id']){delete _0xf43aba[_0x5af6('0x46')]['id'];}return db[_0x5af6('0x29')][_0x5af6('0x4a')]({'where':{'id':_0xf43aba['params']['id']}})[_0x5af6('0x21')](handleEntityNotFound(_0x17834f,null))[_0x5af6('0x21')](function(_0x475224){if(_0x475224){_0xf43aba['body'][_0x5af6('0x4b')]=_0x475224['id'];_0xf43aba[_0x5af6('0x46')]['Subjects']=integrations[_0x5af6('0x4c')](_0xf43aba[_0x5af6('0x46')][_0x5af6('0x4d')],_0xf43aba[_0x5af6('0x46')][_0x5af6('0x2b')]);_0xf43aba[_0x5af6('0x46')][_0x5af6('0x4e')]=integrations['getDescriptions'](_0xf43aba[_0x5af6('0x46')][_0x5af6('0x4d')],_0xf43aba['body'][_0x5af6('0x2b')]);return db[_0x5af6('0x48')][_0x5af6('0x45')](_0xf43aba['body'],{'include':[{'model':db[_0x5af6('0x4f')],'as':'Subjects'},{'model':db[_0x5af6('0x4f')],'as':_0x5af6('0x4e')}]});}return null;})['then'](respondWithResult(_0x17834f,null))[_0x5af6('0x3f')](handleError(_0x17834f,null));};exports['getFields']=function(_0x1b822a,_0x1f7374,_0x368933){var _0x3a5078;var _0x2066e6='';var _0x3ab35c='Task';return db['SalesforceAccount']['findOne']({'where':{'id':_0x1b822a[_0x5af6('0x41')]['id']},'attributes':['id',_0x5af6('0x50'),_0x5af6('0x51'),_0x5af6('0x52'),_0x5af6('0x53'),_0x5af6('0x54'),_0x5af6('0x55')]})[_0x5af6('0x21')](handleEntityNotFound(_0x1f7374,null))[_0x5af6('0x21')](function(_0x5a3011){if(_0x5a3011){_0x2066e6=_0x5a3011[_0x5af6('0x50')];var _0x384582=_0x2066e6['slice'](-0x1);if(_0x384582==='/'){_0x2066e6=_0x2066e6[_0x5af6('0x56')](0x0,_0x2066e6[_0x5af6('0x57')](_0x384582));}_0x3a5078=new jsforce[(_0x5af6('0x58'))]({'oauth2':{'loginUrl':_0x2066e6,'clientId':_0x5a3011['clientId'],'clientSecret':_0x5a3011['clientSecret']}});return _0x3a5078[_0x5af6('0x59')](_0x5a3011[_0x5af6('0x53')],_0x5a3011[_0x5af6('0x54')][_0x5af6('0x5a')](_0x5a3011[_0x5af6('0x55')]));}})[_0x5af6('0x21')](function(_0xef20dd){if(_0xef20dd){if(!_[_0x5af6('0x5b')](_0x1b822a[_0x5af6('0x2e')]['ticketType'])){_0x3ab35c=_0x1b822a[_0x5af6('0x2e')][_0x5af6('0x5c')];}return _0x3a5078[_0x5af6('0x5d')](_0x3ab35c)[_0x5af6('0x5e')]();}})['then'](function(_0x5ed46c){var _0xb4d399=[_0x5af6('0x5f'),_0x5af6('0x60'),'IsReminderSet',_0x5af6('0x61'),_0x5af6('0x62'),_0x5af6('0x63')];var _0x6c6c3e=[_0x5af6('0x64'),_0x5af6('0x65'),_0x5af6('0x66'),_0x5af6('0x67'),_0x5af6('0x68'),'textarea','phone'];if(_0x5ed46c){_[_0x5af6('0x69')](_0x5ed46c[_0x5af6('0x32')],function(_0x38bf8c){return _0xb4d399[_0x5af6('0x6a')](_0x38bf8c[_0x5af6('0x25')])||!_0x6c6c3e[_0x5af6('0x6a')](_0x38bf8c[_0x5af6('0x2b')]);});return{'count':_0x5ed46c[_0x5af6('0x32')]['length'],'rows':_[_0x5af6('0x28')](_0x5ed46c[_0x5af6('0x32')],function(_0x46d7b3){return{'id':_0x46d7b3['name'],'name':_0x46d7b3['label'],'custom':_0x46d7b3['custom'],'options':_0x46d7b3[_0x5af6('0x6b')]['length']>0x0?_['map'](_0x46d7b3['picklistValues'],function(_0x37553f){return{'name':_0x37553f[_0x5af6('0x6c')],'value':_0x37553f[_0x5af6('0x6d')]};}):_0x46d7b3['type']=='boolean'?[{'name':_0x5af6('0x6e'),'value':_0x5af6('0x6f')},{'name':_0x5af6('0x70'),'value':_0x5af6('0x71')}]:[]};})};}})[_0x5af6('0x21')](respondWithResult(_0x1f7374,null))[_0x5af6('0x3f')](function(_0xa91b09){var _0x2c82cb=_0x1b822a[_0x5af6('0x2e')][_0x5af6('0x72')]?0x1f4:_0xa91b09[_0x5af6('0x73')]||0x1f4;logger[_0x5af6('0x23')](_0x5af6('0x74'),_0x5af6('0x75'),_0x2c82cb,JSON[_0x5af6('0x76')](_0xa91b09));delete _0xa91b09['name'];if(_0x2c82cb===0x191){_0x2c82cb=0x190;}_0x1f7374[_0x5af6('0x17')](_0x2c82cb)[_0x5af6('0x26')](_0x1b822a[_0x5af6('0x2e')]['test']?{'message':_0x5af6('0x77'),'statusCode':_0xa91b09[_0x5af6('0x73')]}:_0xa91b09);});};