@@ -213,21 +213,18 @@ export async function getAllCardsAndModels(forceRefresh = false, currentDBId: nu
213213 console . log ( '[minusx] getAllCards - Total cards:' , cards . length ) ;
214214
215215 // Filter cards by database_id only
216- const filteredCardsAndModels = filter ( cards , ( card ) => {
216+ const filteredCards = filter ( cards , ( card ) => {
217217 const databaseId = get ( card , 'database_id' ) ;
218218
219219 // Filter by selected database only
220220 const matchesDatabase = selectedDbId && databaseId ? databaseId === selectedDbId : true ;
221221
222222 return matchesDatabase ;
223223 } ) ;
224- console . log ( '[minusx] getAllCards - Filtered:' , filteredCardsAndModels . length ) ;
224+ console . log ( '[minusx] getAllCards - Filtered:' , filteredCards . length ) ;
225225
226- // split into cards and models
227- const [ filteredCards , filteredModels ] = partition ( filteredCardsAndModels , ( card ) => get ( card , 'type' ) !== 'model' ) ;
228226
229227 console . log ( '[minusx] Non model cards:' , filteredCards . length ) ;
230- console . log ( '[minusx] Model cards:' , filteredModels . length ) ;
231228 // Calculate relevancy score and sort by it
232229 const cardsWithRelevancy = filteredCards . map ( ( card ) => {
233230 const viewCount = get ( card , 'view_count' ) || 0 ;
@@ -261,24 +258,6 @@ export async function getAllCardsAndModels(forceRefresh = false, currentDBId: nu
261258 const cardsForProcessing = sortedCards . map ( card => omit ( card , [ 'relevancy' ] ) ) ;
262259 const processedCards = map ( cardsForProcessing , processCard ) ;
263260
264- const processedModelFields = filteredModels . flatMap ( ( model ) => {
265- const result_metadata = get ( model , 'result_metadata' , [ ] )
266- if ( result_metadata == null ) {
267- console . warn ( "[minusx] model has no result_metadata: " , model )
268- return [ ]
269- }
270- const columns = result_metadata . map ( ( column : ResultMetadataElm ) => {
271- return {
272- id : get ( column , 'name' ) ,
273- name : get ( column , 'name' ) ,
274- type : get ( column , 'base_type' ) ,
275- model_id : get ( model , 'id' ) ,
276- model_name : get ( model , 'name' )
277- }
278- } )
279- return columns
280- } )
281-
282261 console . log ( 'Processed cards:' , processedCards ) ;
283262 const tables : Record < string , TableAndSchema > = { } ;
284263 _ . forEach ( processedCards , ( card ) => {
@@ -296,7 +275,7 @@ export async function getAllCardsAndModels(forceRefresh = false, currentDBId: nu
296275 const relevantTables = _ . chain ( tables ) . values ( ) . sortBy ( 'count' ) . reverse ( ) . value ( ) ;
297276 console . log ( 'Tables from cards:' , relevantTables ) ;
298277
299- return { cards : processedCards , tables : relevantTables , modelFields : processedModelFields } ;
278+ return { cards : processedCards , tables : relevantTables } ;
300279}
301280
302281export async function getAllFields ( currentDBId : number ) {
@@ -381,18 +360,25 @@ export const getAllRelevantModelsForSelectedDb = async (dbId: number, forceRefre
381360 return modelsAsTables . filter ( ( model : MetabaseModel ) => model . collectionName !== 'mx_internal' ) ;
382361}
383362
384- export async function getDatabaseTablesAndModelsWithoutFields ( db_id : number , forceRefreshModels : boolean = false , forceRefreshTables : boolean = false ) : Promise < DatabaseInfoWithTablesAndModels > {
385- // If dbId not provided, get the currently selected database ID
386- const jsonResponse = forceRefreshTables ? await fetchDatabaseWithTables . refresh ( { db_id } ) : await fetchDatabaseWithTables ( { db_id } ) ;
387- const models = await getAllRelevantModelsForSelectedDb ( db_id , forceRefreshModels ) ;
363+ export const getRelevantTablesAndDetailsForSelectedDb = async ( dbId : number , forceRefreshTables : boolean = false ) => {
364+ const jsonResponse = forceRefreshTables ? await fetchDatabaseWithTables . refresh ( { db_id : dbId } ) : await fetchDatabaseWithTables ( { db_id : dbId } ) ;
388365 const defaultSchema = getDefaultSchema ( jsonResponse ) ;
389366 const tables = await Promise . all (
390- map ( get ( jsonResponse , 'tables' , [ ] ) , ( table : any ) => extractTableInfo ( table , false ) )
367+ map ( get ( jsonResponse , 'tables' , [ ] ) , ( table : any ) => extractTableInfo ( table , false ) )
391368 ) ;
392369
393370 return {
394- ...extractDbInfo ( jsonResponse , defaultSchema ) ,
395- tables : tables || [ ] ,
371+ ...extractDbInfo ( jsonResponse , defaultSchema ) ,
372+ tables : tables || [ ]
373+ } ;
374+ }
375+
376+ export async function getDatabaseTablesAndModelsWithoutFields ( db_id : number , forceRefreshModels : boolean = false , forceRefreshTables : boolean = false ) : Promise < DatabaseInfoWithTablesAndModels > {
377+ const tablesAndDetails = await getRelevantTablesAndDetailsForSelectedDb ( db_id , forceRefreshTables ) ;
378+ const models = await getAllRelevantModelsForSelectedDb ( db_id , forceRefreshModels ) ;
379+
380+ return {
381+ ...tablesAndDetails ,
396382 models : models || [ ]
397383 } ;
398384}
0 commit comments