Built motion from commit 9e1ec266.|2.6.28
[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 _0xb7c9=['../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','offset','undefined','limit','set','Content-Range','json','apply','reject','save','update','then','destroy','error','stack','name','send','index','map','rawAttributes','type','key','model','query','intersection','fields','attributes','hasOwnProperty','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','SalesforceAccount','count','include','catch','params','keys','length','find','create','body','getConfigurations','findOne','SalesforceConfiguration','nolimit','addConfiguration','AccountId','getSubjects','Descriptions','getDescriptions','channel','SalesforceField','Task','clientId','clientSecret','username','password','securityToken','remoteUri','slice','lastIndexOf','login','concat','isNil','ticketType','sobject','describe','OwnerId','ActivityDate','IsReminderSet','IsRecurrence','Subject','Description','string','int','picklist','boolean','email','textarea','phone','remove','includes','custom','picklistValues','label','value','True','true','false','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','Wrong\x20credentials','eml-format','rimraf','request-promise','bluebird','mustache','util','sox','to-csv','squel','crypto','jsforce','querystring','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware'];(function(_0x31db69,_0xe8384c){var _0x27c34b=function(_0x568650){while(--_0x568650){_0x31db69['push'](_0x31db69['shift']());}};_0x27c34b(++_0xe8384c);}(_0xb7c9,0x6c));var _0x9b7c=function(_0x45f951,_0x2750c8){_0x45f951=_0x45f951-0x0;var _0x24756c=_0xb7c9[_0x45f951];return _0x24756c;};'use strict';var emlformat=require(_0x9b7c('0x0'));var rimraf=require(_0x9b7c('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x9b7c('0x2'));var moment=require('moment');var BPromise=require(_0x9b7c('0x3'));var Mustache=require(_0x9b7c('0x4'));var util=require(_0x9b7c('0x5'));var path=require('path');var sox=require(_0x9b7c('0x6'));var csv=require(_0x9b7c('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x9b7c('0x8'));var crypto=require(_0x9b7c('0x9'));var jsforce=require(_0x9b7c('0xa'));var deskjs=require('desk.js');var toCsv=require(_0x9b7c('0x7'));var querystring=require(_0x9b7c('0xb'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x9b7c('0xc'));var qs=require(_0x9b7c('0xd'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x9b7c('0xe'));var logger=require(_0x9b7c('0xf'))(_0x9b7c('0x10'));var utils=require('../../config/utils');var config=require(_0x9b7c('0x11'));var licenseUtil=require(_0x9b7c('0x12'));var db=require(_0x9b7c('0x13'))['db'];var integrations=require(_0x9b7c('0x14'));function respondWithStatusCode(_0xff9c45,_0x20d913){_0x20d913=_0x20d913||0xcc;return function(_0x17bcfd){if(_0x17bcfd){return _0xff9c45[_0x9b7c('0x15')](_0x20d913);}return _0xff9c45[_0x9b7c('0x16')](_0x20d913)[_0x9b7c('0x17')]();};}function respondWithResult(_0x461b9c,_0x3f7144){_0x3f7144=_0x3f7144||0xc8;return function(_0xdfa5b7){if(_0xdfa5b7){return _0x461b9c['status'](_0x3f7144)['json'](_0xdfa5b7);}};}function respondWithFilteredResult(_0x3b6175,_0x381ce1){return function(_0x178111){if(_0x178111){var _0x31cc23=typeof _0x381ce1[_0x9b7c('0x18')]==='undefined'&&typeof _0x381ce1['limit']===_0x9b7c('0x19');var _0x4dc621=_0x178111['count'];var _0x5f58c1=_0x31cc23?0x0:_0x381ce1[_0x9b7c('0x18')];var _0x53fa5e=_0x31cc23?_0x178111['count']:_0x381ce1[_0x9b7c('0x18')]+_0x381ce1[_0x9b7c('0x1a')];var _0x213816;if(_0x53fa5e>=_0x4dc621){_0x53fa5e=_0x4dc621;_0x213816=0xc8;}else{_0x213816=0xce;}_0x3b6175[_0x9b7c('0x16')](_0x213816);return _0x3b6175[_0x9b7c('0x1b')](_0x9b7c('0x1c'),_0x5f58c1+'-'+_0x53fa5e+'/'+_0x4dc621)[_0x9b7c('0x1d')](_0x178111);}return null;};}function patchUpdates(_0x2b8ded){return function(_0x133440){try{jsonpatch[_0x9b7c('0x1e')](_0x133440,_0x2b8ded,!![]);}catch(_0x2466dc){return BPromise[_0x9b7c('0x1f')](_0x2466dc);}return _0x133440[_0x9b7c('0x20')]();};}function saveUpdates(_0x5ccb90,_0x2d15b1){return function(_0x2b677c){if(_0x2b677c){return _0x2b677c[_0x9b7c('0x21')](_0x5ccb90)[_0x9b7c('0x22')](function(_0x1a00d8){return _0x1a00d8;});}return null;};}function removeEntity(_0x4462bb,_0x3727df){return function(_0x470cfd){if(_0x470cfd){return _0x470cfd[_0x9b7c('0x23')]()[_0x9b7c('0x22')](function(){_0x4462bb['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x34ca27,_0x334423){return function(_0x4ac6b3){if(!_0x4ac6b3){_0x34ca27['sendStatus'](0x194);}return _0x4ac6b3;};}function handleError(_0x1347a5,_0x49bbe1){_0x49bbe1=_0x49bbe1||0x1f4;return function(_0x56e7c9){logger[_0x9b7c('0x24')](_0x56e7c9[_0x9b7c('0x25')]);if(_0x56e7c9[_0x9b7c('0x26')]){delete _0x56e7c9[_0x9b7c('0x26')];}_0x1347a5[_0x9b7c('0x16')](_0x49bbe1)[_0x9b7c('0x27')](_0x56e7c9);};}exports[_0x9b7c('0x28')]=function(_0x28a8ff,_0x4fd9b5){var _0x31158f={},_0xa0f417={},_0x9b7145={'count':0x0,'rows':[]};var _0xe794b1=_[_0x9b7c('0x29')](db['SalesforceAccount'][_0x9b7c('0x2a')],function(_0x3a5dd4){return{'name':_0x3a5dd4['fieldName'],'type':_0x3a5dd4[_0x9b7c('0x2b')][_0x9b7c('0x2c')]};});_0xa0f417[_0x9b7c('0x2d')]=_[_0x9b7c('0x29')](_0xe794b1,_0x9b7c('0x26'));_0xa0f417[_0x9b7c('0x2e')]=_['keys'](_0x28a8ff[_0x9b7c('0x2e')]);_0xa0f417['filters']=_[_0x9b7c('0x2f')](_0xa0f417[_0x9b7c('0x2d')],_0xa0f417[_0x9b7c('0x2e')]);_0x31158f['attributes']=_[_0x9b7c('0x2f')](_0xa0f417['model'],qs[_0x9b7c('0x30')](_0x28a8ff[_0x9b7c('0x2e')]['fields']));_0x31158f[_0x9b7c('0x31')]=_0x31158f[_0x9b7c('0x31')]['length']?_0x31158f['attributes']:_0xa0f417[_0x9b7c('0x2d')];if(!_0x28a8ff[_0x9b7c('0x2e')][_0x9b7c('0x32')]('nolimit')){_0x31158f[_0x9b7c('0x1a')]=qs['limit'](_0x28a8ff['query'][_0x9b7c('0x1a')]);_0x31158f['offset']=qs[_0x9b7c('0x18')](_0x28a8ff[_0x9b7c('0x2e')][_0x9b7c('0x18')]);}_0x31158f[_0x9b7c('0x33')]=qs[_0x9b7c('0x34')](_0x28a8ff[_0x9b7c('0x2e')][_0x9b7c('0x34')]);_0x31158f[_0x9b7c('0x35')]=qs[_0x9b7c('0x36')](_[_0x9b7c('0x37')](_0x28a8ff[_0x9b7c('0x2e')],_0xa0f417[_0x9b7c('0x36')]),_0xe794b1);if(_0x28a8ff[_0x9b7c('0x2e')][_0x9b7c('0x38')]){_0x31158f[_0x9b7c('0x35')]=_[_0x9b7c('0x39')](_0x31158f[_0x9b7c('0x35')],{'$or':_[_0x9b7c('0x29')](_0xe794b1,function(_0x56ded4){if(_0x56ded4[_0x9b7c('0x2b')]!==_0x9b7c('0x3a')){var _0x170052={};_0x170052[_0x56ded4['name']]={'$like':'%'+_0x28a8ff['query']['filter']+'%'};return _0x170052;}})});}_0x31158f=_['merge']({},_0x31158f,_0x28a8ff[_0x9b7c('0x3b')]);var _0x2081d5={'where':_0x31158f['where']};return db[_0x9b7c('0x3c')][_0x9b7c('0x3d')](_0x2081d5)[_0x9b7c('0x22')](function(_0x317b35){_0x9b7145[_0x9b7c('0x3d')]=_0x317b35;if(_0x28a8ff[_0x9b7c('0x2e')]['includeAll']){_0x31158f[_0x9b7c('0x3e')]=[{'all':!![]}];}return db['SalesforceAccount']['findAll'](_0x31158f);})[_0x9b7c('0x22')](function(_0x2c09cf){_0x9b7145['rows']=_0x2c09cf;return _0x9b7145;})['then'](respondWithFilteredResult(_0x4fd9b5,_0x31158f))[_0x9b7c('0x3f')](handleError(_0x4fd9b5,null));};exports['show']=function(_0x38efa7,_0x5c654f){var _0x360513={'raw':![],'where':{'id':_0x38efa7[_0x9b7c('0x40')]['id']}},_0x163593={};_0x163593['model']=_[_0x9b7c('0x41')](db['SalesforceAccount'][_0x9b7c('0x2a')]);_0x163593[_0x9b7c('0x2e')]=_[_0x9b7c('0x41')](_0x38efa7[_0x9b7c('0x2e')]);_0x163593[_0x9b7c('0x36')]=_[_0x9b7c('0x2f')](_0x163593[_0x9b7c('0x2d')],_0x163593['query']);_0x360513['attributes']=_[_0x9b7c('0x2f')](_0x163593['model'],qs['fields'](_0x38efa7[_0x9b7c('0x2e')][_0x9b7c('0x30')]));_0x360513[_0x9b7c('0x31')]=_0x360513['attributes'][_0x9b7c('0x42')]?_0x360513[_0x9b7c('0x31')]:_0x163593['model'];if(_0x38efa7[_0x9b7c('0x2e')]['includeAll']){_0x360513[_0x9b7c('0x3e')]=[{'all':!![]}];}_0x360513=_[_0x9b7c('0x39')]({},_0x360513,_0x38efa7[_0x9b7c('0x3b')]);return db['SalesforceAccount'][_0x9b7c('0x43')](_0x360513)['then'](handleEntityNotFound(_0x5c654f,null))[_0x9b7c('0x22')](respondWithResult(_0x5c654f,null))[_0x9b7c('0x3f')](handleError(_0x5c654f,null));};exports[_0x9b7c('0x44')]=function(_0x458bb5,_0x3bfe7b){return db['SalesforceAccount'][_0x9b7c('0x44')](_0x458bb5[_0x9b7c('0x45')],{})[_0x9b7c('0x22')](respondWithResult(_0x3bfe7b,0xc9))[_0x9b7c('0x3f')](handleError(_0x3bfe7b,null));};exports[_0x9b7c('0x21')]=function(_0x3bbe49,_0x1bd9ae){if(_0x3bbe49[_0x9b7c('0x45')]['id']){delete _0x3bbe49[_0x9b7c('0x45')]['id'];}return db[_0x9b7c('0x3c')]['find']({'where':{'id':_0x3bbe49[_0x9b7c('0x40')]['id']}})[_0x9b7c('0x22')](handleEntityNotFound(_0x1bd9ae,null))['then'](saveUpdates(_0x3bbe49[_0x9b7c('0x45')],null))[_0x9b7c('0x22')](respondWithResult(_0x1bd9ae,null))[_0x9b7c('0x3f')](handleError(_0x1bd9ae,null));};exports[_0x9b7c('0x23')]=function(_0x174247,_0x1f45f8){return db[_0x9b7c('0x3c')][_0x9b7c('0x43')]({'where':{'id':_0x174247[_0x9b7c('0x40')]['id']}})[_0x9b7c('0x22')](handleEntityNotFound(_0x1f45f8,null))[_0x9b7c('0x22')](removeEntity(_0x1f45f8,null))[_0x9b7c('0x3f')](handleError(_0x1f45f8,null));};exports[_0x9b7c('0x46')]=function(_0x32408f,_0x5975d7,_0x25ca8e){var _0x44d4e4={};var _0x2c8237={};var _0x491d93;var _0x56b281;return db['SalesforceAccount'][_0x9b7c('0x47')]({'where':{'id':_0x32408f[_0x9b7c('0x40')]['id']}})[_0x9b7c('0x22')](handleEntityNotFound(_0x5975d7,null))[_0x9b7c('0x22')](function(_0x1b45ec){if(_0x1b45ec){_0x491d93=_0x1b45ec;_0x2c8237[_0x9b7c('0x2d')]=_[_0x9b7c('0x41')](db[_0x9b7c('0x48')]['rawAttributes']);_0x2c8237['query']=_['keys'](_0x32408f[_0x9b7c('0x2e')]);_0x2c8237[_0x9b7c('0x36')]=_[_0x9b7c('0x2f')](_0x2c8237[_0x9b7c('0x2d')],_0x2c8237['query']);_0x44d4e4[_0x9b7c('0x31')]=_[_0x9b7c('0x2f')](_0x2c8237[_0x9b7c('0x2d')],qs[_0x9b7c('0x30')](_0x32408f[_0x9b7c('0x2e')][_0x9b7c('0x30')]));_0x44d4e4[_0x9b7c('0x31')]=_0x44d4e4[_0x9b7c('0x31')]['length']?_0x44d4e4['attributes']:_0x2c8237[_0x9b7c('0x2d')];_0x44d4e4[_0x9b7c('0x33')]=qs[_0x9b7c('0x34')](_0x32408f[_0x9b7c('0x2e')][_0x9b7c('0x34')]);_0x44d4e4[_0x9b7c('0x35')]=qs[_0x9b7c('0x36')](_[_0x9b7c('0x37')](_0x32408f[_0x9b7c('0x2e')],_0x2c8237[_0x9b7c('0x36')]));if(_0x32408f[_0x9b7c('0x2e')][_0x9b7c('0x38')]){_0x44d4e4[_0x9b7c('0x35')]=_[_0x9b7c('0x39')](_0x44d4e4[_0x9b7c('0x35')],{'$or':_[_0x9b7c('0x29')](_0x44d4e4['attributes'],function(_0x4e3d1e){var _0x3c4b43={};_0x3c4b43[_0x4e3d1e]={'$like':'%'+_0x32408f[_0x9b7c('0x2e')][_0x9b7c('0x38')]+'%'};return _0x3c4b43;})});}_0x44d4e4=_['merge']({},_0x44d4e4,_0x32408f[_0x9b7c('0x3b')]);return _0x491d93['getConfigurations'](_0x44d4e4);}})[_0x9b7c('0x22')](function(_0x51044f){if(_0x51044f){_0x56b281=_0x51044f[_0x9b7c('0x42')];if(!_0x32408f[_0x9b7c('0x2e')][_0x9b7c('0x32')](_0x9b7c('0x49'))){_0x44d4e4[_0x9b7c('0x1a')]=qs['limit'](_0x32408f[_0x9b7c('0x2e')][_0x9b7c('0x1a')]);_0x44d4e4[_0x9b7c('0x18')]=qs[_0x9b7c('0x18')](_0x32408f[_0x9b7c('0x2e')][_0x9b7c('0x18')]);}return _0x491d93[_0x9b7c('0x46')](_0x44d4e4);}})[_0x9b7c('0x22')](function(_0x1fa052){if(_0x1fa052){return _0x1fa052?{'count':_0x56b281,'rows':_0x1fa052}:null;}})[_0x9b7c('0x22')](respondWithResult(_0x5975d7,null))[_0x9b7c('0x3f')](handleError(_0x5975d7,null));};exports[_0x9b7c('0x4a')]=function(_0x30ee36,_0x254ff9,_0x1630bf){if(_0x30ee36[_0x9b7c('0x45')]['id']){delete _0x30ee36[_0x9b7c('0x45')]['id'];}return db[_0x9b7c('0x3c')][_0x9b7c('0x47')]({'where':{'id':_0x30ee36[_0x9b7c('0x40')]['id']}})[_0x9b7c('0x22')](handleEntityNotFound(_0x254ff9,null))['then'](function(_0x521b7b){if(_0x521b7b){_0x30ee36[_0x9b7c('0x45')][_0x9b7c('0x4b')]=_0x521b7b['id'];_0x30ee36[_0x9b7c('0x45')]['Subjects']=integrations[_0x9b7c('0x4c')](_0x30ee36[_0x9b7c('0x45')]['channel'],_0x30ee36[_0x9b7c('0x45')][_0x9b7c('0x2b')]);_0x30ee36[_0x9b7c('0x45')][_0x9b7c('0x4d')]=integrations[_0x9b7c('0x4e')](_0x30ee36[_0x9b7c('0x45')][_0x9b7c('0x4f')],_0x30ee36['body'][_0x9b7c('0x2b')]);return db[_0x9b7c('0x48')][_0x9b7c('0x44')](_0x30ee36['body'],{'include':[{'model':db[_0x9b7c('0x50')],'as':'Subjects'},{'model':db[_0x9b7c('0x50')],'as':_0x9b7c('0x4d')}]});}return null;})[_0x9b7c('0x22')](respondWithResult(_0x254ff9,null))[_0x9b7c('0x3f')](handleError(_0x254ff9,null));};exports['getFields']=function(_0x1c6fce,_0x3ea4e3,_0x14c6ba){var _0x402070;var _0x18ca89='';var _0x4a4f23=_0x9b7c('0x51');return db[_0x9b7c('0x3c')][_0x9b7c('0x47')]({'where':{'id':_0x1c6fce[_0x9b7c('0x40')]['id']},'attributes':['id','remoteUri',_0x9b7c('0x52'),_0x9b7c('0x53'),_0x9b7c('0x54'),_0x9b7c('0x55'),_0x9b7c('0x56')]})[_0x9b7c('0x22')](handleEntityNotFound(_0x3ea4e3,null))[_0x9b7c('0x22')](function(_0xaaac67){if(_0xaaac67){_0x18ca89=_0xaaac67[_0x9b7c('0x57')];var _0x31e656=_0x18ca89[_0x9b7c('0x58')](-0x1);if(_0x31e656==='/'){_0x18ca89=_0x18ca89['substring'](0x0,_0x18ca89[_0x9b7c('0x59')](_0x31e656));}_0x402070=new jsforce['Connection']({'oauth2':{'loginUrl':_0x18ca89,'clientId':_0xaaac67[_0x9b7c('0x52')],'clientSecret':_0xaaac67['clientSecret']}});return _0x402070[_0x9b7c('0x5a')](_0xaaac67[_0x9b7c('0x54')],_0xaaac67[_0x9b7c('0x55')][_0x9b7c('0x5b')](_0xaaac67[_0x9b7c('0x56')]));}})[_0x9b7c('0x22')](function(_0x21ca74){if(_0x21ca74){if(!_[_0x9b7c('0x5c')](_0x1c6fce['query'][_0x9b7c('0x5d')])){_0x4a4f23=_0x1c6fce['query']['ticketType'];}return _0x402070[_0x9b7c('0x5e')](_0x4a4f23)[_0x9b7c('0x5f')]();}})[_0x9b7c('0x22')](function(_0xda64d7){var _0x1ba02f=[_0x9b7c('0x60'),_0x9b7c('0x61'),_0x9b7c('0x62'),_0x9b7c('0x63'),_0x9b7c('0x64'),_0x9b7c('0x65')];var _0x5b7610=[_0x9b7c('0x66'),_0x9b7c('0x67'),_0x9b7c('0x68'),_0x9b7c('0x69'),_0x9b7c('0x6a'),_0x9b7c('0x6b'),_0x9b7c('0x6c')];if(_0xda64d7){_[_0x9b7c('0x6d')](_0xda64d7[_0x9b7c('0x30')],function(_0x373d39){return _0x1ba02f[_0x9b7c('0x6e')](_0x373d39[_0x9b7c('0x26')])||!_0x5b7610[_0x9b7c('0x6e')](_0x373d39[_0x9b7c('0x2b')]);});return{'count':_0xda64d7[_0x9b7c('0x30')]['length'],'rows':_[_0x9b7c('0x29')](_0xda64d7[_0x9b7c('0x30')],function(_0xfcc83d){return{'id':_0xfcc83d[_0x9b7c('0x26')],'name':_0xfcc83d['label'],'custom':_0xfcc83d[_0x9b7c('0x6f')],'options':_0xfcc83d[_0x9b7c('0x70')]['length']>0x0?_[_0x9b7c('0x29')](_0xfcc83d['picklistValues'],function(_0xc2cd8d){return{'name':_0xc2cd8d[_0x9b7c('0x71')],'value':_0xc2cd8d[_0x9b7c('0x72')]};}):_0xfcc83d[_0x9b7c('0x2b')]==_0x9b7c('0x69')?[{'name':_0x9b7c('0x73'),'value':_0x9b7c('0x74')},{'name':'False','value':_0x9b7c('0x75')}]:[]};})};}})['then'](respondWithResult(_0x3ea4e3,null))[_0x9b7c('0x3f')](function(_0x5bc7ec){var _0xe8183=_0x1c6fce['query'][_0x9b7c('0x76')]?0x1f4:_0x5bc7ec[_0x9b7c('0x77')]||0x1f4;logger[_0x9b7c('0x24')](_0x9b7c('0x78'),_0x9b7c('0x79'),_0xe8183,JSON['stringify'](_0x5bc7ec));delete _0x5bc7ec[_0x9b7c('0x26')];if(_0xe8183===0x191){_0xe8183=0x190;}_0x3ea4e3[_0x9b7c('0x16')](_0xe8183)[_0x9b7c('0x27')](_0x1c6fce['query'][_0x9b7c('0x76')]?{'message':_0x9b7c('0x7a'),'statusCode':_0x5bc7ec[_0x9b7c('0x77')]}:_0x5bc7ec);});};