Built motion from commit 0900f080.|2.5.45
[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 _0xc015=['boolean','email','phone','remove','includes','label','custom','picklistValues','value','True','true','False','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','stringify','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','jsforce','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','reject','update','then','destroy','error','stack','name','send','index','map','SalesforceAccount','rawAttributes','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','type','VIRTUAL','filter','options','includeAll','include','catch','show','params','find','create','body','findOne','SalesforceConfiguration','getConfigurations','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','SalesforceField','Task','clientId','clientSecret','username','password','securityToken','substring','lastIndexOf','Connection','concat','ticketType','sobject','OwnerId','IsRecurrence','Description','picklist'];(function(_0x4a0e61,_0x571bb1){var _0x33a50f=function(_0x4ed905){while(--_0x4ed905){_0x4a0e61['push'](_0x4a0e61['shift']());}};_0x33a50f(++_0x571bb1);}(_0xc015,0x85));var _0x5c01=function(_0x33bcdb,_0x11846b){_0x33bcdb=_0x33bcdb-0x0;var _0x18a9bf=_0xc015[_0x33bcdb];return _0x18a9bf;};'use strict';var emlformat=require(_0x5c01('0x0'));var rimraf=require(_0x5c01('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x5c01('0x2'));var rp=require(_0x5c01('0x3'));var moment=require(_0x5c01('0x4'));var BPromise=require(_0x5c01('0x5'));var Mustache=require(_0x5c01('0x6'));var util=require(_0x5c01('0x7'));var path=require(_0x5c01('0x8'));var sox=require(_0x5c01('0x9'));var csv=require(_0x5c01('0xa'));var ejs=require(_0x5c01('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x5c01('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x5c01('0xa'));var querystring=require('querystring');var Papa=require(_0x5c01('0xd'));var Redis=require('ioredis');var authService=require(_0x5c01('0xe'));var qs=require(_0x5c01('0xf'));var as=require(_0x5c01('0x10'));var hardwareService=require(_0x5c01('0x11'));var logger=require(_0x5c01('0x12'))(_0x5c01('0x13'));var utils=require('../../config/utils');var config=require(_0x5c01('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0x5c01('0x15'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0xd0f224,_0x39707e){_0x39707e=_0x39707e||0xcc;return function(_0x318fd8){if(_0x318fd8){return _0xd0f224[_0x5c01('0x16')](_0x39707e);}return _0xd0f224[_0x5c01('0x17')](_0x39707e)[_0x5c01('0x18')]();};}function respondWithResult(_0x5b6c5f,_0x5339a9){_0x5339a9=_0x5339a9||0xc8;return function(_0x1f242e){if(_0x1f242e){return _0x5b6c5f[_0x5c01('0x17')](_0x5339a9)[_0x5c01('0x19')](_0x1f242e);}};}function respondWithFilteredResult(_0x41c4b9,_0x55a25){return function(_0x3707a0){if(_0x3707a0){var _0x314b4d=typeof _0x55a25[_0x5c01('0x1a')]==='undefined'&&typeof _0x55a25[_0x5c01('0x1b')]===_0x5c01('0x1c');var _0x2743bf=_0x3707a0[_0x5c01('0x1d')];var _0x1ae83b=_0x314b4d?0x0:_0x55a25['offset'];var _0x559733=_0x314b4d?_0x3707a0['count']:_0x55a25[_0x5c01('0x1a')]+_0x55a25[_0x5c01('0x1b')];var _0x35d0c9;if(_0x559733>=_0x2743bf){_0x559733=_0x2743bf;_0x35d0c9=0xc8;}else{_0x35d0c9=0xce;}_0x41c4b9[_0x5c01('0x17')](_0x35d0c9);return _0x41c4b9[_0x5c01('0x1e')](_0x5c01('0x1f'),_0x1ae83b+'-'+_0x559733+'/'+_0x2743bf)[_0x5c01('0x19')](_0x3707a0);}return null;};}function patchUpdates(_0x504c63){return function(_0x649fea){try{jsonpatch[_0x5c01('0x20')](_0x649fea,_0x504c63,!![]);}catch(_0x51f93c){return BPromise[_0x5c01('0x21')](_0x51f93c);}return _0x649fea['save']();};}function saveUpdates(_0x2eba4e,_0x3c8d78){return function(_0x10cfb6){if(_0x10cfb6){return _0x10cfb6[_0x5c01('0x22')](_0x2eba4e)[_0x5c01('0x23')](function(_0x1f55d4){return _0x1f55d4;});}return null;};}function removeEntity(_0x406594,_0x212495){return function(_0x4afc0f){if(_0x4afc0f){return _0x4afc0f[_0x5c01('0x24')]()[_0x5c01('0x23')](function(){_0x406594['status'](0xcc)[_0x5c01('0x18')]();});}};}function handleEntityNotFound(_0x11d0ec,_0x3cdfca){return function(_0x55d6a1){if(!_0x55d6a1){_0x11d0ec[_0x5c01('0x16')](0x194);}return _0x55d6a1;};}function handleError(_0x5a5991,_0x22cc0c){_0x22cc0c=_0x22cc0c||0x1f4;return function(_0x23e1af){logger[_0x5c01('0x25')](_0x23e1af[_0x5c01('0x26')]);if(_0x23e1af['name']){delete _0x23e1af[_0x5c01('0x27')];}_0x5a5991[_0x5c01('0x17')](_0x22cc0c)[_0x5c01('0x28')](_0x23e1af);};}exports[_0x5c01('0x29')]=function(_0x573b16,_0x37c103){var _0x45183d={},_0x478ff8={},_0x51fd3b={'count':0x0,'rows':[]};var _0x56d4ee=_[_0x5c01('0x2a')](db[_0x5c01('0x2b')][_0x5c01('0x2c')],function(_0x420514){return{'name':_0x420514['fieldName'],'type':_0x420514['type'][_0x5c01('0x2d')]};});_0x478ff8['model']=_[_0x5c01('0x2a')](_0x56d4ee,'name');_0x478ff8[_0x5c01('0x2e')]=_[_0x5c01('0x2f')](_0x573b16[_0x5c01('0x2e')]);_0x478ff8[_0x5c01('0x30')]=_[_0x5c01('0x31')](_0x478ff8[_0x5c01('0x32')],_0x478ff8[_0x5c01('0x2e')]);_0x45183d[_0x5c01('0x33')]=_['intersection'](_0x478ff8[_0x5c01('0x32')],qs[_0x5c01('0x34')](_0x573b16['query']['fields']));_0x45183d['attributes']=_0x45183d[_0x5c01('0x33')][_0x5c01('0x35')]?_0x45183d[_0x5c01('0x33')]:_0x478ff8[_0x5c01('0x32')];if(!_0x573b16[_0x5c01('0x2e')][_0x5c01('0x36')](_0x5c01('0x37'))){_0x45183d['limit']=qs[_0x5c01('0x1b')](_0x573b16[_0x5c01('0x2e')][_0x5c01('0x1b')]);_0x45183d[_0x5c01('0x1a')]=qs[_0x5c01('0x1a')](_0x573b16[_0x5c01('0x2e')][_0x5c01('0x1a')]);}_0x45183d[_0x5c01('0x38')]=qs[_0x5c01('0x39')](_0x573b16[_0x5c01('0x2e')]['sort']);_0x45183d[_0x5c01('0x3a')]=qs[_0x5c01('0x30')](_[_0x5c01('0x3b')](_0x573b16[_0x5c01('0x2e')],_0x478ff8[_0x5c01('0x30')]),_0x56d4ee);if(_0x573b16[_0x5c01('0x2e')]['filter']){_0x45183d[_0x5c01('0x3a')]=_[_0x5c01('0x3c')](_0x45183d['where'],{'$or':_['map'](_0x56d4ee,function(_0x3bd64c){if(_0x3bd64c[_0x5c01('0x3d')]!==_0x5c01('0x3e')){var _0x32268e={};_0x32268e[_0x3bd64c[_0x5c01('0x27')]]={'$like':'%'+_0x573b16[_0x5c01('0x2e')][_0x5c01('0x3f')]+'%'};return _0x32268e;}})});}_0x45183d=_[_0x5c01('0x3c')]({},_0x45183d,_0x573b16[_0x5c01('0x40')]);var _0xaf24f7={'where':_0x45183d[_0x5c01('0x3a')]};return db['SalesforceAccount'][_0x5c01('0x1d')](_0xaf24f7)[_0x5c01('0x23')](function(_0x250165){_0x51fd3b['count']=_0x250165;if(_0x573b16[_0x5c01('0x2e')][_0x5c01('0x41')]){_0x45183d[_0x5c01('0x42')]=[{'all':!![]}];}return db['SalesforceAccount']['findAll'](_0x45183d);})[_0x5c01('0x23')](function(_0x5415f1){_0x51fd3b['rows']=_0x5415f1;return _0x51fd3b;})[_0x5c01('0x23')](respondWithFilteredResult(_0x37c103,_0x45183d))[_0x5c01('0x43')](handleError(_0x37c103,null));};exports[_0x5c01('0x44')]=function(_0x671d45,_0x3b4bce){var _0x143f33={'raw':![],'where':{'id':_0x671d45[_0x5c01('0x45')]['id']}},_0x384dc7={};_0x384dc7['model']=_[_0x5c01('0x2f')](db[_0x5c01('0x2b')][_0x5c01('0x2c')]);_0x384dc7[_0x5c01('0x2e')]=_[_0x5c01('0x2f')](_0x671d45[_0x5c01('0x2e')]);_0x384dc7[_0x5c01('0x30')]=_[_0x5c01('0x31')](_0x384dc7[_0x5c01('0x32')],_0x384dc7[_0x5c01('0x2e')]);_0x143f33['attributes']=_['intersection'](_0x384dc7[_0x5c01('0x32')],qs['fields'](_0x671d45[_0x5c01('0x2e')][_0x5c01('0x34')]));_0x143f33['attributes']=_0x143f33[_0x5c01('0x33')][_0x5c01('0x35')]?_0x143f33['attributes']:_0x384dc7[_0x5c01('0x32')];if(_0x671d45[_0x5c01('0x2e')][_0x5c01('0x41')]){_0x143f33['include']=[{'all':!![]}];}_0x143f33=_[_0x5c01('0x3c')]({},_0x143f33,_0x671d45[_0x5c01('0x40')]);return db[_0x5c01('0x2b')][_0x5c01('0x46')](_0x143f33)[_0x5c01('0x23')](handleEntityNotFound(_0x3b4bce,null))[_0x5c01('0x23')](respondWithResult(_0x3b4bce,null))['catch'](handleError(_0x3b4bce,null));};exports[_0x5c01('0x47')]=function(_0x39022f,_0x3d438c){return db[_0x5c01('0x2b')]['create'](_0x39022f[_0x5c01('0x48')],{})[_0x5c01('0x23')](respondWithResult(_0x3d438c,0xc9))[_0x5c01('0x43')](handleError(_0x3d438c,null));};exports[_0x5c01('0x22')]=function(_0xfadd88,_0x11eb03){if(_0xfadd88[_0x5c01('0x48')]['id']){delete _0xfadd88['body']['id'];}return db[_0x5c01('0x2b')][_0x5c01('0x46')]({'where':{'id':_0xfadd88[_0x5c01('0x45')]['id']}})['then'](handleEntityNotFound(_0x11eb03,null))['then'](saveUpdates(_0xfadd88[_0x5c01('0x48')],null))['then'](respondWithResult(_0x11eb03,null))[_0x5c01('0x43')](handleError(_0x11eb03,null));};exports[_0x5c01('0x24')]=function(_0x290c9f,_0x9d2471){return db['SalesforceAccount'][_0x5c01('0x46')]({'where':{'id':_0x290c9f[_0x5c01('0x45')]['id']}})[_0x5c01('0x23')](handleEntityNotFound(_0x9d2471,null))[_0x5c01('0x23')](removeEntity(_0x9d2471,null))[_0x5c01('0x43')](handleError(_0x9d2471,null));};exports['getConfigurations']=function(_0x8712,_0x3c9fdd,_0x5359dc){var _0x4629bd={};var _0x17c5bd={};var _0x311fc9;var _0x4f9e55;return db[_0x5c01('0x2b')][_0x5c01('0x49')]({'where':{'id':_0x8712[_0x5c01('0x45')]['id']}})[_0x5c01('0x23')](handleEntityNotFound(_0x3c9fdd,null))['then'](function(_0x1b544d){if(_0x1b544d){_0x311fc9=_0x1b544d;_0x17c5bd[_0x5c01('0x32')]=_['keys'](db[_0x5c01('0x4a')][_0x5c01('0x2c')]);_0x17c5bd[_0x5c01('0x2e')]=_['keys'](_0x8712[_0x5c01('0x2e')]);_0x17c5bd['filters']=_[_0x5c01('0x31')](_0x17c5bd['model'],_0x17c5bd[_0x5c01('0x2e')]);_0x4629bd[_0x5c01('0x33')]=_[_0x5c01('0x31')](_0x17c5bd[_0x5c01('0x32')],qs[_0x5c01('0x34')](_0x8712[_0x5c01('0x2e')][_0x5c01('0x34')]));_0x4629bd['attributes']=_0x4629bd[_0x5c01('0x33')][_0x5c01('0x35')]?_0x4629bd[_0x5c01('0x33')]:_0x17c5bd[_0x5c01('0x32')];_0x4629bd[_0x5c01('0x38')]=qs[_0x5c01('0x39')](_0x8712[_0x5c01('0x2e')][_0x5c01('0x39')]);_0x4629bd[_0x5c01('0x3a')]=qs['filters'](_['pick'](_0x8712['query'],_0x17c5bd[_0x5c01('0x30')]));if(_0x8712['query'][_0x5c01('0x3f')]){_0x4629bd[_0x5c01('0x3a')]=_[_0x5c01('0x3c')](_0x4629bd[_0x5c01('0x3a')],{'$or':_[_0x5c01('0x2a')](_0x4629bd[_0x5c01('0x33')],function(_0x10ebe2){var _0x22a0c2={};_0x22a0c2[_0x10ebe2]={'$like':'%'+_0x8712['query']['filter']+'%'};return _0x22a0c2;})});}_0x4629bd=_[_0x5c01('0x3c')]({},_0x4629bd,_0x8712[_0x5c01('0x40')]);return _0x311fc9[_0x5c01('0x4b')](_0x4629bd);}})[_0x5c01('0x23')](function(_0x8df65a){if(_0x8df65a){_0x4f9e55=_0x8df65a[_0x5c01('0x35')];if(!_0x8712['query']['hasOwnProperty'](_0x5c01('0x37'))){_0x4629bd[_0x5c01('0x1b')]=qs[_0x5c01('0x1b')](_0x8712['query'][_0x5c01('0x1b')]);_0x4629bd[_0x5c01('0x1a')]=qs['offset'](_0x8712[_0x5c01('0x2e')]['offset']);}return _0x311fc9['getConfigurations'](_0x4629bd);}})[_0x5c01('0x23')](function(_0x2b9e1c){if(_0x2b9e1c){return _0x2b9e1c?{'count':_0x4f9e55,'rows':_0x2b9e1c}:null;}})['then'](respondWithResult(_0x3c9fdd,null))[_0x5c01('0x43')](handleError(_0x3c9fdd,null));};exports[_0x5c01('0x4c')]=function(_0xc9c0e6,_0x5b22c2,_0x34331f){if(_0xc9c0e6[_0x5c01('0x48')]['id']){delete _0xc9c0e6[_0x5c01('0x48')]['id'];}return db[_0x5c01('0x2b')][_0x5c01('0x49')]({'where':{'id':_0xc9c0e6[_0x5c01('0x45')]['id']}})[_0x5c01('0x23')](handleEntityNotFound(_0x5b22c2,null))[_0x5c01('0x23')](function(_0x1a8ef7){if(_0x1a8ef7){_0xc9c0e6[_0x5c01('0x48')][_0x5c01('0x4d')]=_0x1a8ef7['id'];_0xc9c0e6[_0x5c01('0x48')][_0x5c01('0x4e')]=integrations[_0x5c01('0x4f')](_0xc9c0e6[_0x5c01('0x48')][_0x5c01('0x50')],_0xc9c0e6['body']['type']);_0xc9c0e6[_0x5c01('0x48')][_0x5c01('0x51')]=integrations['getDescriptions'](_0xc9c0e6['body'][_0x5c01('0x50')],_0xc9c0e6[_0x5c01('0x48')]['type']);return db[_0x5c01('0x4a')][_0x5c01('0x47')](_0xc9c0e6[_0x5c01('0x48')],{'include':[{'model':db[_0x5c01('0x52')],'as':'Subjects'},{'model':db[_0x5c01('0x52')],'as':'Descriptions'}]});}return null;})[_0x5c01('0x23')](respondWithResult(_0x5b22c2,null))['catch'](handleError(_0x5b22c2,null));};exports['getFields']=function(_0x1c7217,_0x247087,_0x4168b6){var _0x5c8ee7;var _0x3f6b1e='';var _0x5db34a=_0x5c01('0x53');return db[_0x5c01('0x2b')][_0x5c01('0x49')]({'where':{'id':_0x1c7217[_0x5c01('0x45')]['id']},'attributes':['id','remoteUri',_0x5c01('0x54'),_0x5c01('0x55'),_0x5c01('0x56'),_0x5c01('0x57'),_0x5c01('0x58')]})[_0x5c01('0x23')](handleEntityNotFound(_0x247087,null))[_0x5c01('0x23')](function(_0x519e2c){if(_0x519e2c){_0x3f6b1e=_0x519e2c['remoteUri'];var _0x2290c6=_0x3f6b1e['slice'](-0x1);if(_0x2290c6==='/'){_0x3f6b1e=_0x3f6b1e[_0x5c01('0x59')](0x0,_0x3f6b1e[_0x5c01('0x5a')](_0x2290c6));}_0x5c8ee7=new jsforce[(_0x5c01('0x5b'))]({'oauth2':{'loginUrl':_0x3f6b1e,'clientId':_0x519e2c['clientId'],'clientSecret':_0x519e2c[_0x5c01('0x55')]}});return _0x5c8ee7['login'](_0x519e2c[_0x5c01('0x56')],_0x519e2c[_0x5c01('0x57')][_0x5c01('0x5c')](_0x519e2c['securityToken']));}})[_0x5c01('0x23')](function(_0xc16ae5){if(_0xc16ae5){if(!_['isNil'](_0x1c7217[_0x5c01('0x2e')]['ticketType'])){_0x5db34a=_0x1c7217[_0x5c01('0x2e')][_0x5c01('0x5d')];}return _0x5c8ee7[_0x5c01('0x5e')](_0x5db34a)['describe']();}})['then'](function(_0x4415ed){var _0x54a276=[_0x5c01('0x5f'),'ActivityDate','IsReminderSet',_0x5c01('0x60'),'Subject',_0x5c01('0x61')];var _0x90500d=['string','int',_0x5c01('0x62'),_0x5c01('0x63'),_0x5c01('0x64'),'textarea',_0x5c01('0x65')];if(_0x4415ed){_[_0x5c01('0x66')](_0x4415ed[_0x5c01('0x34')],function(_0x417bfb){return _0x54a276[_0x5c01('0x67')](_0x417bfb[_0x5c01('0x27')])||!_0x90500d['includes'](_0x417bfb[_0x5c01('0x3d')]);});return{'count':_0x4415ed[_0x5c01('0x34')]['length'],'rows':_[_0x5c01('0x2a')](_0x4415ed[_0x5c01('0x34')],function(_0x1c3cb0){return{'id':_0x1c3cb0['name'],'name':_0x1c3cb0[_0x5c01('0x68')],'custom':_0x1c3cb0[_0x5c01('0x69')],'options':_0x1c3cb0[_0x5c01('0x6a')][_0x5c01('0x35')]>0x0?_['map'](_0x1c3cb0['picklistValues'],function(_0x2ec22f){return{'name':_0x2ec22f[_0x5c01('0x68')],'value':_0x2ec22f[_0x5c01('0x6b')]};}):_0x1c3cb0['type']==_0x5c01('0x63')?[{'name':_0x5c01('0x6c'),'value':_0x5c01('0x6d')},{'name':_0x5c01('0x6e'),'value':'false'}]:[]};})};}})[_0x5c01('0x23')](respondWithResult(_0x247087,null))[_0x5c01('0x43')](function(_0x27129b){var _0x25522f=_0x1c7217[_0x5c01('0x2e')][_0x5c01('0x6f')]?0x1f4:_0x27129b[_0x5c01('0x70')]||0x1f4;logger[_0x5c01('0x25')](_0x5c01('0x71'),_0x5c01('0x72'),_0x25522f,JSON[_0x5c01('0x73')](_0x27129b));delete _0x27129b[_0x5c01('0x27')];if(_0x25522f===0x191){_0x25522f=0x190;}_0x247087['status'](_0x25522f)[_0x5c01('0x28')](_0x1c7217['query']['test']?{'message':'Wrong\x20credentials','statusCode':_0x27129b['statusCode']}:_0x27129b);});};