From 16bdb7a7af0d9b73b5319a1906f8cb7922e56c2a Mon Sep 17 00:00:00 2001 From: Ville Brofeldt Date: Fri, 15 May 2020 18:14:55 +0300 Subject: [PATCH 1/5] remove payload from return signature --- superset-frontend/src/chart/chartAction.js | 6 +++--- .../src/explore/actions/saveModalActions.js | 4 ++-- .../explore/components/DisplayQueryButton.jsx | 4 ++-- .../components/ExploreViewContainer.jsx | 4 +--- superset-frontend/src/explore/exploreUtils.js | 19 +++++++------------ 5 files changed, 15 insertions(+), 22 deletions(-) diff --git a/superset-frontend/src/chart/chartAction.js b/superset-frontend/src/chart/chartAction.js index a26d67011347..4b209d694ce3 100644 --- a/superset-frontend/src/chart/chartAction.js +++ b/superset-frontend/src/chart/chartAction.js @@ -213,7 +213,7 @@ function legacyChartDataRequest( dashboardId, requestParams, ) { - const { url, payload } = getExploreUrlAndPayload({ + const url = getExploreUrlAndPayload({ formData, endpointType: 'json', force, @@ -224,7 +224,7 @@ function legacyChartDataRequest( const querySettings = { ...requestParams, url, - postPayload: { form_data: payload }, + postPayload: { form_data: formData }, }; const clientMethod = @@ -400,7 +400,7 @@ export function postChartFormData( export function redirectSQLLab(formData) { return dispatch => { - const { url } = getExploreUrlAndPayload({ + const url = getExploreUrlAndPayload({ formData, endpointType: 'query', }); diff --git a/superset-frontend/src/explore/actions/saveModalActions.js b/superset-frontend/src/explore/actions/saveModalActions.js index 01797ee8ec06..fd08244fb045 100644 --- a/superset-frontend/src/explore/actions/saveModalActions.js +++ b/superset-frontend/src/explore/actions/saveModalActions.js @@ -62,7 +62,7 @@ export function removeSaveModalAlert() { export function saveSlice(formData, requestParams) { return dispatch => { - const { url, payload } = getExploreUrlAndPayload({ + const url = getExploreUrlAndPayload({ formData, endpointType: 'base', force: false, @@ -70,7 +70,7 @@ export function saveSlice(formData, requestParams) { requestParams, }); - return SupersetClient.post({ url, postPayload: { form_data: payload } }) + return SupersetClient.post({ url, postPayload: { form_data: formData } }) .then(({ json }) => dispatch(saveSliceSuccess(json))) .catch(() => dispatch(saveSliceFailed())); }; diff --git a/superset-frontend/src/explore/components/DisplayQueryButton.jsx b/superset-frontend/src/explore/components/DisplayQueryButton.jsx index 72759b16cdc1..e7514c39d1d0 100644 --- a/superset-frontend/src/explore/components/DisplayQueryButton.jsx +++ b/superset-frontend/src/explore/components/DisplayQueryButton.jsx @@ -89,13 +89,13 @@ export class DisplayQueryButton extends React.PureComponent { } beforeOpen(endpointType) { this.setState({ isLoading: true }); - const { url, payload } = getExploreUrlAndPayload({ + const url = getExploreUrlAndPayload({ formData: this.props.latestQueryFormData, endpointType, }); SupersetClient.post({ url, - postPayload: { form_data: payload }, + postPayload: { form_data: this.props.latestQueryFormData }, }) .then(({ json }) => { this.setState({ diff --git a/superset-frontend/src/explore/components/ExploreViewContainer.jsx b/superset-frontend/src/explore/components/ExploreViewContainer.jsx index 88c121c9503c..e02b424b8381 100644 --- a/superset-frontend/src/explore/components/ExploreViewContainer.jsx +++ b/superset-frontend/src/explore/components/ExploreViewContainer.jsx @@ -231,9 +231,7 @@ class ExploreViewContainer extends React.Component { } addHistory({ isReplace = false, title }) { - const { payload } = getExploreUrlAndPayload({ - formData: this.props.form_data, - }); + const payload = { ...this.props.form_data }; const longUrl = getExploreLongUrl(this.props.form_data, null, false); try { if (isReplace) { diff --git a/superset-frontend/src/explore/exploreUtils.js b/superset-frontend/src/explore/exploreUtils.js index 42261f62e059..12ccc8d0b6a4 100644 --- a/superset-frontend/src/explore/exploreUtils.js +++ b/superset-frontend/src/explore/exploreUtils.js @@ -63,7 +63,7 @@ export function getAnnotationJsonUrl(slice_id, form_data, isNative) { .toString(); } -export function getURIDirectory(formData, endpointType = 'base') { +export function getURIDirectory(endpointType = 'base') { // Building the directory part of the URI let directory = '/superset/explore/'; if ( @@ -84,8 +84,9 @@ export function getExploreLongUrl( return null; } + const uri = new URI('/'); - const directory = getURIDirectory(formData, endpointType); + const directory = getURIDirectory(endpointType); const search = uri.search(true); Object.keys(extraSearch).forEach(key => { search[key] = extraSearch[key]; @@ -134,7 +135,7 @@ export function getExploreUrlAndPayload({ uri = URI(URI(curUrl).search()); } - const directory = getURIDirectory(formData, endpointType); + const directory = getURIDirectory(endpointType); // Building the querystring (search) part of the URI const search = uri.search(true); @@ -178,13 +179,7 @@ export function getExploreUrlAndPayload({ } }); } - uri = uri.search(search).directory(directory); - const payload = { ...formData }; - - return { - url: uri.toString(), - payload, - }; + return uri.search(search).directory(directory).toString(); } export function postForm(url, payload, target = '_blank') { @@ -213,10 +208,10 @@ export function postForm(url, payload, target = '_blank') { } export function exportChart(formData, endpointType) { - const { url, payload } = getExploreUrlAndPayload({ + const url = getExploreUrlAndPayload({ formData, endpointType, allowDomainSharding: false, }); - postForm(url, payload); + postForm(url, formData); } From 52354b28d9d39f807b3b0280d16d44fe6fbe8537 Mon Sep 17 00:00:00 2001 From: Ville Brofeldt Date: Mon, 18 May 2020 10:44:05 +0300 Subject: [PATCH 2/5] Rename function and fix tests --- .../javascripts/chart/chartActions_spec.js | 4 +- .../explore/components/SaveModal_spec.jsx | 6 +-- .../spec/javascripts/explore/utils_spec.jsx | 50 ++++++------------- .../sqllab/ExploreResultsButton_spec.jsx | 7 +-- superset-frontend/src/chart/chartAction.js | 6 +-- .../src/explore/actions/saveModalActions.js | 4 +- .../explore/components/DisplayQueryButton.jsx | 4 +- .../components/ExploreViewContainer.jsx | 2 +- superset-frontend/src/explore/exploreUtils.js | 4 +- 9 files changed, 32 insertions(+), 55 deletions(-) diff --git a/superset-frontend/spec/javascripts/chart/chartActions_spec.js b/superset-frontend/spec/javascripts/chart/chartActions_spec.js index c33c4b9cc01f..5c67509409d4 100644 --- a/superset-frontend/spec/javascripts/chart/chartActions_spec.js +++ b/superset-frontend/spec/javascripts/chart/chartActions_spec.js @@ -47,8 +47,8 @@ describe('chart actions', () => { beforeEach(() => { dispatch = sinon.spy(); urlStub = sinon - .stub(exploreUtils, 'getExploreUrlAndPayload') - .callsFake(() => ({ url: MOCK_URL, payload: {} })); + .stub(exploreUtils, 'getExploreUrl') + .callsFake(() => MOCK_URL); fakeMetadata = { useLegacyApi: true }; metadataRegistryStub = sinon .stub(chartlib, 'getChartMetadataRegistry') diff --git a/superset-frontend/spec/javascripts/explore/components/SaveModal_spec.jsx b/superset-frontend/spec/javascripts/explore/components/SaveModal_spec.jsx index 0d1c4a63c446..996e0ec5b26a 100644 --- a/superset-frontend/spec/javascripts/explore/components/SaveModal_spec.jsx +++ b/superset-frontend/spec/javascripts/explore/components/SaveModal_spec.jsx @@ -141,8 +141,8 @@ describe('SaveModal', () => { describe('saveOrOverwrite', () => { beforeEach(() => { sinon - .stub(exploreUtils, 'getExploreUrlAndPayload') - .callsFake(() => ({ url: 'mockURL', payload: defaultProps.form_data })); + .stub(exploreUtils, 'getExploreUrl') + .callsFake(() => 'mockURL'); sinon.stub(defaultProps.actions, 'saveSlice').callsFake(() => Promise.resolve({ @@ -155,7 +155,7 @@ describe('SaveModal', () => { }); afterEach(() => { - exploreUtils.getExploreUrlAndPayload.restore(); + exploreUtils.getExploreUrl.restore(); defaultProps.actions.saveSlice.restore(); }); diff --git a/superset-frontend/spec/javascripts/explore/utils_spec.jsx b/superset-frontend/spec/javascripts/explore/utils_spec.jsx index f8bf7fa7dde1..3bbf610ca66b 100644 --- a/superset-frontend/spec/javascripts/explore/utils_spec.jsx +++ b/superset-frontend/spec/javascripts/explore/utils_spec.jsx @@ -20,7 +20,7 @@ import sinon from 'sinon'; import URI from 'urijs'; import { - getExploreUrlAndPayload, + getExploreUrl, getExploreLongUrl, } from 'src/explore/exploreUtils'; import * as hostNamesConfig from 'src/utils/hostNamesConfig'; @@ -35,33 +35,31 @@ describe('exploreUtils', () => { expect(uri1.toString()).toBe(uri2.toString()); } - describe('getExploreUrlAndPayload', () => { + describe('getExploreUrl', () => { it('generates proper base url', () => { // This assertion is to show clearly the value of location.href // in the context of unit tests. expect(location.href).toBe('http://localhost/'); - const { url, payload } = getExploreUrlAndPayload({ + const url = getExploreUrl({ formData, endpointType: 'base', force: false, curUrl: 'http://superset.com', }); compareURI(URI(url), URI('/superset/explore/')); - expect(payload).toEqual(formData); }); it('generates proper json url', () => { - const { url, payload } = getExploreUrlAndPayload({ + const url = getExploreUrl({ formData, endpointType: 'json', force: false, curUrl: 'http://superset.com', }); compareURI(URI(url), URI('/superset/explore_json/')); - expect(payload).toEqual(formData); }); it('generates proper json forced url', () => { - const { url, payload } = getExploreUrlAndPayload({ + const url = getExploreUrl({ formData, endpointType: 'json', force: true, @@ -71,10 +69,9 @@ describe('exploreUtils', () => { URI(url), URI('/superset/explore_json/').search({ force: 'true' }), ); - expect(payload).toEqual(formData); }); it('generates proper csv URL', () => { - const { url, payload } = getExploreUrlAndPayload({ + const url = getExploreUrl({ formData, endpointType: 'csv', force: false, @@ -84,10 +81,9 @@ describe('exploreUtils', () => { URI(url), URI('/superset/explore_json/').search({ csv: 'true' }), ); - expect(payload).toEqual(formData); }); it('generates proper standalone URL', () => { - const { url, payload } = getExploreUrlAndPayload({ + const url = getExploreUrl({ formData, endpointType: 'standalone', force: false, @@ -97,10 +93,9 @@ describe('exploreUtils', () => { URI(url), URI('/superset/explore/').search({ standalone: 'true' }), ); - expect(payload).toEqual(formData); }); it('preserves main URLs params', () => { - const { url, payload } = getExploreUrlAndPayload({ + const url = getExploreUrl({ formData, endpointType: 'json', force: false, @@ -110,10 +105,9 @@ describe('exploreUtils', () => { URI(url), URI('/superset/explore_json/').search({ foo: 'bar' }), ); - expect(payload).toEqual(formData); }); it('generate proper save slice url', () => { - const { url, payload } = getExploreUrlAndPayload({ + const url = getExploreUrl({ formData, endpointType: 'json', force: false, @@ -123,20 +117,6 @@ describe('exploreUtils', () => { URI(url), URI('/superset/explore_json/').search({ foo: 'bar' }), ); - expect(payload).toEqual(formData); - }); - it('generate proper saveas slice url', () => { - const { url, payload } = getExploreUrlAndPayload({ - formData, - endpointType: 'json', - force: false, - curUrl: 'superset.com?foo=bar', - }); - compareURI( - URI(url), - URI('/superset/explore_json/').search({ foo: 'bar' }), - ); - expect(payload).toEqual(formData); }); }); @@ -158,7 +138,7 @@ describe('exploreUtils', () => { }); it('generate url to different domains', () => { - let url = getExploreUrlAndPayload({ + let url = getExploreUrl({ formData, endpointType: 'json', allowDomainSharding: true, @@ -167,14 +147,14 @@ describe('exploreUtils', () => { // to leave main domain free for other calls like fav star, save change, etc. expect(url).toMatch(availableDomains[1]); - url = getExploreUrlAndPayload({ + url = getExploreUrl({ formData, endpointType: 'json', allowDomainSharding: true, }).url; expect(url).toMatch(availableDomains[2]); - url = getExploreUrlAndPayload({ + url = getExploreUrl({ formData, endpointType: 'json', allowDomainSharding: true, @@ -182,7 +162,7 @@ describe('exploreUtils', () => { expect(url).toMatch(availableDomains[3]); // circle back to first available domain - url = getExploreUrlAndPayload({ + url = getExploreUrl({ formData, endpointType: 'json', allowDomainSharding: true, @@ -190,13 +170,13 @@ describe('exploreUtils', () => { expect(url).toMatch(availableDomains[1]); }); it('not generate url to different domains without flag', () => { - let csvURL = getExploreUrlAndPayload({ + let csvURL = getExploreUrl({ formData, endpointType: 'csv', }).url; expect(csvURL).toMatch(availableDomains[0]); - csvURL = getExploreUrlAndPayload({ + csvURL = getExploreUrl({ formData, endpointType: 'csv', }).url; diff --git a/superset-frontend/spec/javascripts/sqllab/ExploreResultsButton_spec.jsx b/superset-frontend/spec/javascripts/sqllab/ExploreResultsButton_spec.jsx index 6bd0165715ea..fee2ba560e30 100644 --- a/superset-frontend/spec/javascripts/sqllab/ExploreResultsButton_spec.jsx +++ b/superset-frontend/spec/javascripts/sqllab/ExploreResultsButton_spec.jsx @@ -177,17 +177,14 @@ describe('ExploreResultsButton', () => { fetchMock.post(visualizeEndpoint, visualizationPayload); beforeEach(() => { - sinon.stub(exploreUtils, 'getExploreUrlAndPayload').callsFake(() => ({ - url: 'mockURL', - payload: { datasource: '107__table' }, - })); + sinon.stub(exploreUtils, 'getExploreUrl').callsFake(() => 'mockURL'); sinon.spy(exploreUtils, 'exportChart'); sinon .stub(wrapper.instance(), 'buildVizOptions') .callsFake(() => mockOptions); }); afterEach(() => { - exploreUtils.getExploreUrlAndPayload.restore(); + exploreUtils.getExploreUrl.restore(); exploreUtils.exportChart.restore(); wrapper.instance().buildVizOptions.restore(); fetchMock.reset(); diff --git a/superset-frontend/src/chart/chartAction.js b/superset-frontend/src/chart/chartAction.js index 4b209d694ce3..45341bbcccd9 100644 --- a/superset-frontend/src/chart/chartAction.js +++ b/superset-frontend/src/chart/chartAction.js @@ -27,7 +27,7 @@ import { import { SupersetClient } from '@superset-ui/connection'; import { isFeatureEnabled, FeatureFlag } from 'src/featureFlags'; import { - getExploreUrlAndPayload, + getExploreUrl, getAnnotationJsonUrl, postForm, } from '../explore/exploreUtils'; @@ -213,7 +213,7 @@ function legacyChartDataRequest( dashboardId, requestParams, ) { - const url = getExploreUrlAndPayload({ + const url = getExploreUrl({ formData, endpointType: 'json', force, @@ -400,7 +400,7 @@ export function postChartFormData( export function redirectSQLLab(formData) { return dispatch => { - const url = getExploreUrlAndPayload({ + const url = getExploreUrl({ formData, endpointType: 'query', }); diff --git a/superset-frontend/src/explore/actions/saveModalActions.js b/superset-frontend/src/explore/actions/saveModalActions.js index fd08244fb045..a32f9563b87a 100644 --- a/superset-frontend/src/explore/actions/saveModalActions.js +++ b/superset-frontend/src/explore/actions/saveModalActions.js @@ -17,7 +17,7 @@ * under the License. */ import { SupersetClient } from '@superset-ui/connection'; -import { getExploreUrlAndPayload } from '../exploreUtils'; +import { getExploreUrl } from '../exploreUtils'; export const FETCH_DASHBOARDS_SUCCEEDED = 'FETCH_DASHBOARDS_SUCCEEDED'; export function fetchDashboardsSucceeded(choices) { @@ -62,7 +62,7 @@ export function removeSaveModalAlert() { export function saveSlice(formData, requestParams) { return dispatch => { - const url = getExploreUrlAndPayload({ + const url = getExploreUrl({ formData, endpointType: 'base', force: false, diff --git a/superset-frontend/src/explore/components/DisplayQueryButton.jsx b/superset-frontend/src/explore/components/DisplayQueryButton.jsx index e7514c39d1d0..32d5f7630b2e 100644 --- a/superset-frontend/src/explore/components/DisplayQueryButton.jsx +++ b/superset-frontend/src/explore/components/DisplayQueryButton.jsx @@ -41,7 +41,7 @@ import { SupersetClient } from '@superset-ui/connection'; import getClientErrorObject from '../../utils/getClientErrorObject'; import CopyToClipboard from './../../components/CopyToClipboard'; -import { getExploreUrlAndPayload } from '../exploreUtils'; +import { getExploreUrl } from '../exploreUtils'; import Loading from '../../components/Loading'; import ModalTrigger from './../../components/ModalTrigger'; @@ -89,7 +89,7 @@ export class DisplayQueryButton extends React.PureComponent { } beforeOpen(endpointType) { this.setState({ isLoading: true }); - const url = getExploreUrlAndPayload({ + const url = getExploreUrl({ formData: this.props.latestQueryFormData, endpointType, }); diff --git a/superset-frontend/src/explore/components/ExploreViewContainer.jsx b/superset-frontend/src/explore/components/ExploreViewContainer.jsx index e02b424b8381..044372168bc9 100644 --- a/superset-frontend/src/explore/components/ExploreViewContainer.jsx +++ b/superset-frontend/src/explore/components/ExploreViewContainer.jsx @@ -27,7 +27,7 @@ import ExploreChartPanel from './ExploreChartPanel'; import ControlPanelsContainer from './ControlPanelsContainer'; import SaveModal from './SaveModal'; import QueryAndSaveBtns from './QueryAndSaveBtns'; -import { getExploreUrlAndPayload, getExploreLongUrl } from '../exploreUtils'; +import { getExploreUrl, getExploreLongUrl } from '../exploreUtils'; import { areObjectsEqual } from '../../reduxUtils'; import { getFormDataFromControls } from '../controlUtils'; import { chartPropShape } from '../../dashboard/util/propShapes'; diff --git a/superset-frontend/src/explore/exploreUtils.js b/superset-frontend/src/explore/exploreUtils.js index 12ccc8d0b6a4..4fd843a3dfc1 100644 --- a/superset-frontend/src/explore/exploreUtils.js +++ b/superset-frontend/src/explore/exploreUtils.js @@ -108,7 +108,7 @@ export function getExploreLongUrl( return url; } -export function getExploreUrlAndPayload({ +export function getExploreUrl({ formData, endpointType = 'base', force = false, @@ -208,7 +208,7 @@ export function postForm(url, payload, target = '_blank') { } export function exportChart(formData, endpointType) { - const url = getExploreUrlAndPayload({ + const url = getExploreUrl({ formData, endpointType, allowDomainSharding: false, From adc35d2acb9dee389600d1cbe40fd1a08e8d31c3 Mon Sep 17 00:00:00 2001 From: Ville Brofeldt Date: Mon, 18 May 2020 11:07:20 +0300 Subject: [PATCH 3/5] Lint --- .../spec/javascripts/explore/components/SaveModal_spec.jsx | 4 +--- superset-frontend/spec/javascripts/explore/utils_spec.jsx | 5 +---- superset-frontend/src/explore/exploreUtils.js | 1 - 3 files changed, 2 insertions(+), 8 deletions(-) diff --git a/superset-frontend/spec/javascripts/explore/components/SaveModal_spec.jsx b/superset-frontend/spec/javascripts/explore/components/SaveModal_spec.jsx index 996e0ec5b26a..55e685bab06e 100644 --- a/superset-frontend/spec/javascripts/explore/components/SaveModal_spec.jsx +++ b/superset-frontend/spec/javascripts/explore/components/SaveModal_spec.jsx @@ -140,9 +140,7 @@ describe('SaveModal', () => { describe('saveOrOverwrite', () => { beforeEach(() => { - sinon - .stub(exploreUtils, 'getExploreUrl') - .callsFake(() => 'mockURL'); + sinon.stub(exploreUtils, 'getExploreUrl').callsFake(() => 'mockURL'); sinon.stub(defaultProps.actions, 'saveSlice').callsFake(() => Promise.resolve({ diff --git a/superset-frontend/spec/javascripts/explore/utils_spec.jsx b/superset-frontend/spec/javascripts/explore/utils_spec.jsx index 3bbf610ca66b..9f409c29395d 100644 --- a/superset-frontend/spec/javascripts/explore/utils_spec.jsx +++ b/superset-frontend/spec/javascripts/explore/utils_spec.jsx @@ -19,10 +19,7 @@ import sinon from 'sinon'; import URI from 'urijs'; -import { - getExploreUrl, - getExploreLongUrl, -} from 'src/explore/exploreUtils'; +import { getExploreUrl, getExploreLongUrl } from 'src/explore/exploreUtils'; import * as hostNamesConfig from 'src/utils/hostNamesConfig'; describe('exploreUtils', () => { diff --git a/superset-frontend/src/explore/exploreUtils.js b/superset-frontend/src/explore/exploreUtils.js index 4fd843a3dfc1..d54144e35ad6 100644 --- a/superset-frontend/src/explore/exploreUtils.js +++ b/superset-frontend/src/explore/exploreUtils.js @@ -84,7 +84,6 @@ export function getExploreLongUrl( return null; } - const uri = new URI('/'); const directory = getURIDirectory(endpointType); const search = uri.search(true); From fe93273e9be72e38d0921322a8ea36239151e12c Mon Sep 17 00:00:00 2001 From: Ville Brofeldt Date: Mon, 18 May 2020 11:20:38 +0300 Subject: [PATCH 4/5] fix tests --- .../spec/javascripts/explore/utils_spec.jsx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/superset-frontend/spec/javascripts/explore/utils_spec.jsx b/superset-frontend/spec/javascripts/explore/utils_spec.jsx index 9f409c29395d..2318d6e51ea9 100644 --- a/superset-frontend/spec/javascripts/explore/utils_spec.jsx +++ b/superset-frontend/spec/javascripts/explore/utils_spec.jsx @@ -139,7 +139,7 @@ describe('exploreUtils', () => { formData, endpointType: 'json', allowDomainSharding: true, - }).url; + }); // skip main domain for fetching chart if domain sharding is enabled // to leave main domain free for other calls like fav star, save change, etc. expect(url).toMatch(availableDomains[1]); @@ -148,14 +148,14 @@ describe('exploreUtils', () => { formData, endpointType: 'json', allowDomainSharding: true, - }).url; + }); expect(url).toMatch(availableDomains[2]); url = getExploreUrl({ formData, endpointType: 'json', allowDomainSharding: true, - }).url; + }); expect(url).toMatch(availableDomains[3]); // circle back to first available domain @@ -163,20 +163,20 @@ describe('exploreUtils', () => { formData, endpointType: 'json', allowDomainSharding: true, - }).url; + }); expect(url).toMatch(availableDomains[1]); }); it('not generate url to different domains without flag', () => { let csvURL = getExploreUrl({ formData, endpointType: 'csv', - }).url; + }); expect(csvURL).toMatch(availableDomains[0]); csvURL = getExploreUrl({ formData, endpointType: 'csv', - }).url; + }); expect(csvURL).toMatch(availableDomains[0]); }); }); From 4e02f4e398478fdef527d581cb47c3edc47d0d75 Mon Sep 17 00:00:00 2001 From: Ville Brofeldt Date: Mon, 18 May 2020 15:47:21 +0300 Subject: [PATCH 5/5] Move useLegacyApi inquiry to exploreUtils --- superset-frontend/src/chart/chartAction.js | 8 +++----- superset-frontend/src/explore/exploreUtils.js | 11 ++++++++--- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/superset-frontend/src/chart/chartAction.js b/superset-frontend/src/chart/chartAction.js index 45341bbcccd9..3b46ae1498e6 100644 --- a/superset-frontend/src/chart/chartAction.js +++ b/superset-frontend/src/chart/chartAction.js @@ -20,13 +20,11 @@ /* eslint no-param-reassign: ["error", { "props": false }] */ import moment from 'moment'; import { t } from '@superset-ui/translation'; -import { - getChartBuildQueryRegistry, - getChartMetadataRegistry, -} from '@superset-ui/chart'; +import { getChartBuildQueryRegistry } from '@superset-ui/chart'; import { SupersetClient } from '@superset-ui/connection'; import { isFeatureEnabled, FeatureFlag } from 'src/featureFlags'; import { + shouldUseLegacyApi, getExploreUrl, getAnnotationJsonUrl, postForm, @@ -260,7 +258,7 @@ export function exploreJSON( const logStart = Logger.getTimestamp(); const controller = new AbortController(); - const { useLegacyApi } = getChartMetadataRegistry().get(formData.viz_type); + const useLegacyApi = shouldUseLegacyApi(formData); let requestParams = { signal: controller.signal, diff --git a/superset-frontend/src/explore/exploreUtils.js b/superset-frontend/src/explore/exploreUtils.js index d54144e35ad6..63706e851562 100644 --- a/superset-frontend/src/explore/exploreUtils.js +++ b/superset-frontend/src/explore/exploreUtils.js @@ -18,6 +18,7 @@ */ /* eslint camelcase: 0 */ import URI from 'urijs'; +import { getChartMetadataRegistry } from '@superset-ui/chart'; import { availableDomains } from '../utils/hostNamesConfig'; import { safeStringify } from '../utils/safeStringify'; @@ -65,13 +66,12 @@ export function getAnnotationJsonUrl(slice_id, form_data, isNative) { export function getURIDirectory(endpointType = 'base') { // Building the directory part of the URI - let directory = '/superset/explore/'; if ( ['json', 'csv', 'query', 'results', 'samples'].indexOf(endpointType) >= 0 ) { - directory = '/superset/explore_json/'; + return '/superset/explore_json/'; } - return directory; + return '/superset/explore/'; } export function getExploreLongUrl( @@ -107,6 +107,11 @@ export function getExploreLongUrl( return url; } +export function shouldUseLegacyApi(formData) { + const { useLegacyApi } = getChartMetadataRegistry().get(formData.viz_type); + return useLegacyApi || false; +} + export function getExploreUrl({ formData, endpointType = 'base',