From c81814b148ae0d5aed00b8d454be1f4a3ace34c3 Mon Sep 17 00:00:00 2001 From: hughhhh Date: Tue, 5 Oct 2021 15:58:28 -0700 Subject: [PATCH] move logic to FE --- .../src/SqlLab/components/ResultSet.tsx | 27 ++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/superset-frontend/src/SqlLab/components/ResultSet.tsx b/superset-frontend/src/SqlLab/components/ResultSet.tsx index 87f08d9580b36..e8c23b25d0884 100644 --- a/superset-frontend/src/SqlLab/components/ResultSet.tsx +++ b/superset-frontend/src/SqlLab/components/ResultSet.tsx @@ -69,9 +69,17 @@ enum LIMITING_FACTOR { const LOADING_STYLES: CSSProperties = { position: 'relative', minHeight: 100 }; +interface DatasetOwner { + first_name: string; + id: number; + last_name: string; + username: string; +} + interface DatasetOptionAutocomplete { value: string; datasetId: number; + owners: [DatasetOwner]; } interface ResultSetProps { @@ -142,6 +150,7 @@ const updateDataset = async ( datasetId: number, sql: string, columns: Array>, + owners: [number], overrideColumns: boolean, ) => { const endpoint = `api/v1/dataset/${datasetId}?override_columns=${overrideColumns}`; @@ -149,8 +158,10 @@ const updateDataset = async ( const body = JSON.stringify({ sql, columns, + owners, }); + console.log(body); const data: JsonResponse = await SupersetClient.put({ endpoint, headers, @@ -265,10 +276,13 @@ export default class ResultSet extends React.PureComponent< const { sql, results } = this.props.query; const { datasetToOverwrite } = this.state; + console.log(datasetToOverwrite); + await updateDataset( datasetToOverwrite.datasetId, sql, results.selected_columns.map(d => ({ column_name: d.name })), + datasetToOverwrite.owners.map((o: DatasetOwner) => o.id), true, ); @@ -405,10 +419,15 @@ export default class ResultSet extends React.PureComponent< endpoint: '/api/v1/dataset', })(`q=${queryParams}`); - return response.result.map((r: { table_name: string; id: number }) => ({ - value: r.table_name, - datasetId: r.id, - })); + console.log(response.result); + + return response.result.map( + (r: { table_name: string; id: number; owners: [DatasetOwner] }) => ({ + value: r.table_name, + datasetId: r.id, + owners: r.owners, + }), + ); } return null;