6d268798d3624656f810bb478071a32ea2ed13da
[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 _0xed58=['Subject','Description','string','int','email','textarea','phone','includes','label','boolean','True','true','false','test','error','stringify','Wrong\x20credentials','statusCode','rimraf','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','json','offset','limit','undefined','count','Content-Range','apply','reject','save','update','then','destroy','end','name','send','index','map','SalesforceAccount','rawAttributes','fieldName','type','key','keys','query','filters','intersection','model','attributes','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','params','fields','find','create','body','findOne','order','getConfigurations','addConfiguration','AccountId','getSubjects','Descriptions','getDescriptions','channel','SalesforceConfiguration','SalesforceField','Subjects','getFields','Task','remoteUri','clientId','clientSecret','username','password','securityToken','slice','substring','lastIndexOf','Connection','login','concat','isNil','ticketType','sobject','OwnerId','IsReminderSet','IsRecurrence'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xed58,0x186));var _0x8ed5=function(_0x5ddb1c,_0x5ea4df){_0x5ddb1c=_0x5ddb1c-0x0;var _0x354adc=_0xed58[_0x5ddb1c];return _0x354adc;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x8ed5('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x8ed5('0x1'));var BPromise=require(_0x8ed5('0x2'));var Mustache=require(_0x8ed5('0x3'));var util=require(_0x8ed5('0x4'));var path=require('path');var sox=require(_0x8ed5('0x5'));var csv=require(_0x8ed5('0x6'));var ejs=require(_0x8ed5('0x7'));var fs=require('fs');var fs_extra=require(_0x8ed5('0x8'));var _=require(_0x8ed5('0x9'));var squel=require(_0x8ed5('0xa'));var crypto=require(_0x8ed5('0xb'));var jsforce=require(_0x8ed5('0xc'));var deskjs=require(_0x8ed5('0xd'));var toCsv=require(_0x8ed5('0x6'));var querystring=require('querystring');var Papa=require(_0x8ed5('0xe'));var Redis=require('ioredis');var authService=require(_0x8ed5('0xf'));var qs=require(_0x8ed5('0x10'));var as=require(_0x8ed5('0x11'));var hardwareService=require(_0x8ed5('0x12'));var logger=require(_0x8ed5('0x13'))(_0x8ed5('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x8ed5('0x15'));var db=require(_0x8ed5('0x16'))['db'];var integrations=require(_0x8ed5('0x17'));function respondWithStatusCode(_0x5a000d,_0x7117b4){_0x7117b4=_0x7117b4||0xcc;return function(_0x459b8b){if(_0x459b8b){return _0x5a000d[_0x8ed5('0x18')](_0x7117b4);}return _0x5a000d[_0x8ed5('0x19')](_0x7117b4)['end']();};}function respondWithResult(_0x667685,_0x413a0b){_0x413a0b=_0x413a0b||0xc8;return function(_0x29f0a3){if(_0x29f0a3){return _0x667685[_0x8ed5('0x19')](_0x413a0b)[_0x8ed5('0x1a')](_0x29f0a3);}};}function respondWithFilteredResult(_0xb36c33,_0x186b72){return function(_0x4f1543){if(_0x4f1543){var _0x47181b=typeof _0x186b72[_0x8ed5('0x1b')]==='undefined'&&typeof _0x186b72[_0x8ed5('0x1c')]===_0x8ed5('0x1d');var _0x2f4bcc=_0x4f1543[_0x8ed5('0x1e')];var _0x3733f8=_0x47181b?0x0:_0x186b72[_0x8ed5('0x1b')];var _0x5e994c=_0x47181b?_0x4f1543[_0x8ed5('0x1e')]:_0x186b72['offset']+_0x186b72[_0x8ed5('0x1c')];var _0x112c11;if(_0x5e994c>=_0x2f4bcc){_0x5e994c=_0x2f4bcc;_0x112c11=0xc8;}else{_0x112c11=0xce;}_0xb36c33[_0x8ed5('0x19')](_0x112c11);return _0xb36c33['set'](_0x8ed5('0x1f'),_0x3733f8+'-'+_0x5e994c+'/'+_0x2f4bcc)[_0x8ed5('0x1a')](_0x4f1543);}return null;};}function patchUpdates(_0x147a4a){return function(_0x2c0c27){try{jsonpatch[_0x8ed5('0x20')](_0x2c0c27,_0x147a4a,!![]);}catch(_0x269e8d){return BPromise[_0x8ed5('0x21')](_0x269e8d);}return _0x2c0c27[_0x8ed5('0x22')]();};}function saveUpdates(_0x40e659,_0x14868b){return function(_0x22d6fb){if(_0x22d6fb){return _0x22d6fb[_0x8ed5('0x23')](_0x40e659)[_0x8ed5('0x24')](function(_0x44a56d){return _0x44a56d;});}return null;};}function removeEntity(_0x37bea6,_0x33b431){return function(_0xa1fbb2){if(_0xa1fbb2){return _0xa1fbb2[_0x8ed5('0x25')]()[_0x8ed5('0x24')](function(){_0x37bea6[_0x8ed5('0x19')](0xcc)[_0x8ed5('0x26')]();});}};}function handleEntityNotFound(_0x5df1c5,_0x4df5bd){return function(_0x6c0cdf){if(!_0x6c0cdf){_0x5df1c5[_0x8ed5('0x18')](0x194);}return _0x6c0cdf;};}function handleError(_0x1a4370,_0x3cbb78){_0x3cbb78=_0x3cbb78||0x1f4;return function(_0x393be1){logger['error'](_0x393be1['stack']);if(_0x393be1[_0x8ed5('0x27')]){delete _0x393be1[_0x8ed5('0x27')];}_0x1a4370[_0x8ed5('0x19')](_0x3cbb78)[_0x8ed5('0x28')](_0x393be1);};}exports[_0x8ed5('0x29')]=function(_0x7e9c5e,_0x7d9cf3){var _0x2f3470={},_0x23c654={},_0x49d400={'count':0x0,'rows':[]};var _0x4dbf5f=_[_0x8ed5('0x2a')](db[_0x8ed5('0x2b')][_0x8ed5('0x2c')],function(_0x508cf7){return{'name':_0x508cf7[_0x8ed5('0x2d')],'type':_0x508cf7[_0x8ed5('0x2e')][_0x8ed5('0x2f')]};});_0x23c654['model']=_[_0x8ed5('0x2a')](_0x4dbf5f,_0x8ed5('0x27'));_0x23c654['query']=_[_0x8ed5('0x30')](_0x7e9c5e[_0x8ed5('0x31')]);_0x23c654[_0x8ed5('0x32')]=_[_0x8ed5('0x33')](_0x23c654[_0x8ed5('0x34')],_0x23c654[_0x8ed5('0x31')]);_0x2f3470[_0x8ed5('0x35')]=_['intersection'](_0x23c654[_0x8ed5('0x34')],qs['fields'](_0x7e9c5e[_0x8ed5('0x31')]['fields']));_0x2f3470[_0x8ed5('0x35')]=_0x2f3470[_0x8ed5('0x35')][_0x8ed5('0x36')]?_0x2f3470[_0x8ed5('0x35')]:_0x23c654[_0x8ed5('0x34')];if(!_0x7e9c5e[_0x8ed5('0x31')][_0x8ed5('0x37')](_0x8ed5('0x38'))){_0x2f3470[_0x8ed5('0x1c')]=qs[_0x8ed5('0x1c')](_0x7e9c5e[_0x8ed5('0x31')][_0x8ed5('0x1c')]);_0x2f3470['offset']=qs[_0x8ed5('0x1b')](_0x7e9c5e['query'][_0x8ed5('0x1b')]);}_0x2f3470['order']=qs['sort'](_0x7e9c5e[_0x8ed5('0x31')][_0x8ed5('0x39')]);_0x2f3470[_0x8ed5('0x3a')]=qs[_0x8ed5('0x32')](_[_0x8ed5('0x3b')](_0x7e9c5e[_0x8ed5('0x31')],_0x23c654['filters']),_0x4dbf5f);if(_0x7e9c5e[_0x8ed5('0x31')][_0x8ed5('0x3c')]){_0x2f3470[_0x8ed5('0x3a')]=_[_0x8ed5('0x3d')](_0x2f3470[_0x8ed5('0x3a')],{'$or':_[_0x8ed5('0x2a')](_0x4dbf5f,function(_0x503b4b){if(_0x503b4b[_0x8ed5('0x2e')]!==_0x8ed5('0x3e')){var _0x16e85c={};_0x16e85c[_0x503b4b[_0x8ed5('0x27')]]={'$like':'%'+_0x7e9c5e[_0x8ed5('0x31')][_0x8ed5('0x3c')]+'%'};return _0x16e85c;}})});}_0x2f3470=_['merge']({},_0x2f3470,_0x7e9c5e[_0x8ed5('0x3f')]);var _0x438639={'where':_0x2f3470[_0x8ed5('0x3a')]};return db[_0x8ed5('0x2b')][_0x8ed5('0x1e')](_0x438639)[_0x8ed5('0x24')](function(_0x3ec545){_0x49d400['count']=_0x3ec545;if(_0x7e9c5e[_0x8ed5('0x31')][_0x8ed5('0x40')]){_0x2f3470[_0x8ed5('0x41')]=[{'all':!![]}];}return db[_0x8ed5('0x2b')][_0x8ed5('0x42')](_0x2f3470);})['then'](function(_0x27b36a){_0x49d400[_0x8ed5('0x43')]=_0x27b36a;return _0x49d400;})[_0x8ed5('0x24')](respondWithFilteredResult(_0x7d9cf3,_0x2f3470))[_0x8ed5('0x44')](handleError(_0x7d9cf3,null));};exports['show']=function(_0x2825f6,_0xa26909){var _0xe0f4f1={'raw':![],'where':{'id':_0x2825f6[_0x8ed5('0x45')]['id']}},_0x10d7f9={};_0x10d7f9[_0x8ed5('0x34')]=_[_0x8ed5('0x30')](db['SalesforceAccount'][_0x8ed5('0x2c')]);_0x10d7f9[_0x8ed5('0x31')]=_[_0x8ed5('0x30')](_0x2825f6[_0x8ed5('0x31')]);_0x10d7f9['filters']=_[_0x8ed5('0x33')](_0x10d7f9[_0x8ed5('0x34')],_0x10d7f9[_0x8ed5('0x31')]);_0xe0f4f1[_0x8ed5('0x35')]=_[_0x8ed5('0x33')](_0x10d7f9['model'],qs[_0x8ed5('0x46')](_0x2825f6[_0x8ed5('0x31')][_0x8ed5('0x46')]));_0xe0f4f1[_0x8ed5('0x35')]=_0xe0f4f1['attributes'][_0x8ed5('0x36')]?_0xe0f4f1['attributes']:_0x10d7f9['model'];if(_0x2825f6['query'][_0x8ed5('0x40')]){_0xe0f4f1['include']=[{'all':!![]}];}_0xe0f4f1=_[_0x8ed5('0x3d')]({},_0xe0f4f1,_0x2825f6[_0x8ed5('0x3f')]);return db['SalesforceAccount'][_0x8ed5('0x47')](_0xe0f4f1)['then'](handleEntityNotFound(_0xa26909,null))[_0x8ed5('0x24')](respondWithResult(_0xa26909,null))[_0x8ed5('0x44')](handleError(_0xa26909,null));};exports[_0x8ed5('0x48')]=function(_0xf8034,_0x25e8a1){return db[_0x8ed5('0x2b')][_0x8ed5('0x48')](_0xf8034['body'],{})[_0x8ed5('0x24')](respondWithResult(_0x25e8a1,0xc9))[_0x8ed5('0x44')](handleError(_0x25e8a1,null));};exports['update']=function(_0xcb590b,_0x3e4bfd){if(_0xcb590b['body']['id']){delete _0xcb590b[_0x8ed5('0x49')]['id'];}return db[_0x8ed5('0x2b')]['find']({'where':{'id':_0xcb590b['params']['id']}})[_0x8ed5('0x24')](handleEntityNotFound(_0x3e4bfd,null))[_0x8ed5('0x24')](saveUpdates(_0xcb590b[_0x8ed5('0x49')],null))[_0x8ed5('0x24')](respondWithResult(_0x3e4bfd,null))[_0x8ed5('0x44')](handleError(_0x3e4bfd,null));};exports['destroy']=function(_0x27a993,_0x595d96){return db['SalesforceAccount'][_0x8ed5('0x47')]({'where':{'id':_0x27a993['params']['id']}})['then'](handleEntityNotFound(_0x595d96,null))['then'](removeEntity(_0x595d96,null))[_0x8ed5('0x44')](handleError(_0x595d96,null));};exports['getConfigurations']=function(_0x140b2a,_0x4fe77c,_0x3fa7c6){var _0x4a3c48={};var _0xbafada={};var _0x2ef590;var _0x489901;return db[_0x8ed5('0x2b')][_0x8ed5('0x4a')]({'where':{'id':_0x140b2a['params']['id']}})[_0x8ed5('0x24')](handleEntityNotFound(_0x4fe77c,null))[_0x8ed5('0x24')](function(_0x2934a3){if(_0x2934a3){_0x2ef590=_0x2934a3;_0xbafada[_0x8ed5('0x34')]=_[_0x8ed5('0x30')](db['SalesforceConfiguration'][_0x8ed5('0x2c')]);_0xbafada[_0x8ed5('0x31')]=_[_0x8ed5('0x30')](_0x140b2a[_0x8ed5('0x31')]);_0xbafada[_0x8ed5('0x32')]=_[_0x8ed5('0x33')](_0xbafada['model'],_0xbafada[_0x8ed5('0x31')]);_0x4a3c48['attributes']=_['intersection'](_0xbafada['model'],qs['fields'](_0x140b2a[_0x8ed5('0x31')][_0x8ed5('0x46')]));_0x4a3c48[_0x8ed5('0x35')]=_0x4a3c48[_0x8ed5('0x35')][_0x8ed5('0x36')]?_0x4a3c48['attributes']:_0xbafada['model'];_0x4a3c48[_0x8ed5('0x4b')]=qs[_0x8ed5('0x39')](_0x140b2a[_0x8ed5('0x31')][_0x8ed5('0x39')]);_0x4a3c48[_0x8ed5('0x3a')]=qs['filters'](_[_0x8ed5('0x3b')](_0x140b2a[_0x8ed5('0x31')],_0xbafada[_0x8ed5('0x32')]));if(_0x140b2a[_0x8ed5('0x31')][_0x8ed5('0x3c')]){_0x4a3c48['where']=_['merge'](_0x4a3c48[_0x8ed5('0x3a')],{'$or':_[_0x8ed5('0x2a')](_0x4a3c48[_0x8ed5('0x35')],function(_0xfd9d08){var _0x2e1248={};_0x2e1248[_0xfd9d08]={'$like':'%'+_0x140b2a[_0x8ed5('0x31')]['filter']+'%'};return _0x2e1248;})});}_0x4a3c48=_[_0x8ed5('0x3d')]({},_0x4a3c48,_0x140b2a['options']);return _0x2ef590[_0x8ed5('0x4c')](_0x4a3c48);}})[_0x8ed5('0x24')](function(_0x201aa2){if(_0x201aa2){_0x489901=_0x201aa2[_0x8ed5('0x36')];if(!_0x140b2a[_0x8ed5('0x31')][_0x8ed5('0x37')]('nolimit')){_0x4a3c48[_0x8ed5('0x1c')]=qs[_0x8ed5('0x1c')](_0x140b2a[_0x8ed5('0x31')][_0x8ed5('0x1c')]);_0x4a3c48[_0x8ed5('0x1b')]=qs['offset'](_0x140b2a['query'][_0x8ed5('0x1b')]);}return _0x2ef590[_0x8ed5('0x4c')](_0x4a3c48);}})[_0x8ed5('0x24')](function(_0x32e5ac){if(_0x32e5ac){return _0x32e5ac?{'count':_0x489901,'rows':_0x32e5ac}:null;}})[_0x8ed5('0x24')](respondWithResult(_0x4fe77c,null))['catch'](handleError(_0x4fe77c,null));};exports[_0x8ed5('0x4d')]=function(_0x111f24,_0x50d66a,_0xd7dcd7){if(_0x111f24[_0x8ed5('0x49')]['id']){delete _0x111f24[_0x8ed5('0x49')]['id'];}return db[_0x8ed5('0x2b')][_0x8ed5('0x4a')]({'where':{'id':_0x111f24[_0x8ed5('0x45')]['id']}})[_0x8ed5('0x24')](handleEntityNotFound(_0x50d66a,null))['then'](function(_0x1f436f){if(_0x1f436f){_0x111f24[_0x8ed5('0x49')][_0x8ed5('0x4e')]=_0x1f436f['id'];_0x111f24[_0x8ed5('0x49')]['Subjects']=integrations[_0x8ed5('0x4f')](_0x111f24[_0x8ed5('0x49')]['channel'],_0x111f24[_0x8ed5('0x49')][_0x8ed5('0x2e')]);_0x111f24[_0x8ed5('0x49')][_0x8ed5('0x50')]=integrations[_0x8ed5('0x51')](_0x111f24[_0x8ed5('0x49')][_0x8ed5('0x52')],_0x111f24[_0x8ed5('0x49')][_0x8ed5('0x2e')]);return db[_0x8ed5('0x53')][_0x8ed5('0x48')](_0x111f24[_0x8ed5('0x49')],{'include':[{'model':db[_0x8ed5('0x54')],'as':_0x8ed5('0x55')},{'model':db['SalesforceField'],'as':'Descriptions'}]});}return null;})['then'](respondWithResult(_0x50d66a,null))[_0x8ed5('0x44')](handleError(_0x50d66a,null));};exports[_0x8ed5('0x56')]=function(_0x156fe7,_0x29a4e3,_0x61dce1){var _0x2eb41a;var _0x26349b='';var _0x5901bf=_0x8ed5('0x57');return db[_0x8ed5('0x2b')][_0x8ed5('0x4a')]({'where':{'id':_0x156fe7[_0x8ed5('0x45')]['id']},'attributes':['id',_0x8ed5('0x58'),_0x8ed5('0x59'),_0x8ed5('0x5a'),_0x8ed5('0x5b'),_0x8ed5('0x5c'),_0x8ed5('0x5d')]})[_0x8ed5('0x24')](handleEntityNotFound(_0x29a4e3,null))[_0x8ed5('0x24')](function(_0x163f50){if(_0x163f50){_0x26349b=_0x163f50[_0x8ed5('0x58')];var _0x4cc7d7=_0x26349b[_0x8ed5('0x5e')](-0x1);if(_0x4cc7d7==='/'){_0x26349b=_0x26349b[_0x8ed5('0x5f')](0x0,_0x26349b[_0x8ed5('0x60')](_0x4cc7d7));}_0x2eb41a=new jsforce[(_0x8ed5('0x61'))]({'oauth2':{'loginUrl':_0x26349b,'clientId':_0x163f50[_0x8ed5('0x59')],'clientSecret':_0x163f50[_0x8ed5('0x5a')]}});return _0x2eb41a[_0x8ed5('0x62')](_0x163f50[_0x8ed5('0x5b')],_0x163f50[_0x8ed5('0x5c')][_0x8ed5('0x63')](_0x163f50[_0x8ed5('0x5d')]));}})[_0x8ed5('0x24')](function(_0x500978){if(_0x500978){if(!_[_0x8ed5('0x64')](_0x156fe7[_0x8ed5('0x31')][_0x8ed5('0x65')])){_0x5901bf=_0x156fe7[_0x8ed5('0x31')]['ticketType'];}return _0x2eb41a[_0x8ed5('0x66')](_0x5901bf)['describe']();}})[_0x8ed5('0x24')](function(_0x4b8037){var _0x3f65d2=[_0x8ed5('0x67'),'ActivityDate',_0x8ed5('0x68'),_0x8ed5('0x69'),_0x8ed5('0x6a'),_0x8ed5('0x6b')];var _0x5dff76=[_0x8ed5('0x6c'),_0x8ed5('0x6d'),'picklist','boolean',_0x8ed5('0x6e'),_0x8ed5('0x6f'),_0x8ed5('0x70')];if(_0x4b8037){_['remove'](_0x4b8037['fields'],function(_0x143e00){return _0x3f65d2['includes'](_0x143e00[_0x8ed5('0x27')])||!_0x5dff76[_0x8ed5('0x71')](_0x143e00[_0x8ed5('0x2e')]);});return{'count':_0x4b8037[_0x8ed5('0x46')][_0x8ed5('0x36')],'rows':_['map'](_0x4b8037['fields'],function(_0x55a8ae){return{'id':_0x55a8ae[_0x8ed5('0x27')],'name':_0x55a8ae[_0x8ed5('0x72')],'custom':_0x55a8ae['custom'],'options':_0x55a8ae['picklistValues'][_0x8ed5('0x36')]>0x0?_[_0x8ed5('0x2a')](_0x55a8ae['picklistValues'],function(_0x33dbd0){return{'name':_0x33dbd0['label'],'value':_0x33dbd0['value']};}):_0x55a8ae[_0x8ed5('0x2e')]==_0x8ed5('0x73')?[{'name':_0x8ed5('0x74'),'value':_0x8ed5('0x75')},{'name':'False','value':_0x8ed5('0x76')}]:[]};})};}})[_0x8ed5('0x24')](respondWithResult(_0x29a4e3,null))[_0x8ed5('0x44')](function(_0x4c753e){var _0x5a8e33=_0x156fe7['query'][_0x8ed5('0x77')]?0x1f4:_0x4c753e['statusCode']||0x1f4;logger[_0x8ed5('0x78')]('getFields,\x20%s,\x20%s,\x20%s',_0x8ed5('0x56'),_0x5a8e33,JSON[_0x8ed5('0x79')](_0x4c753e));delete _0x4c753e[_0x8ed5('0x27')];if(_0x5a8e33===0x191){_0x5a8e33=0x190;}_0x29a4e3[_0x8ed5('0x19')](_0x5a8e33)[_0x8ed5('0x28')](_0x156fe7[_0x8ed5('0x31')][_0x8ed5('0x77')]?{'message':_0x8ed5('0x7a'),'statusCode':_0x4c753e[_0x8ed5('0x7b')]}:_0x4c753e);});};