diff --git a/main.go b/main.go index fe2792f..5afd840 100644 --- a/main.go +++ b/main.go @@ -212,7 +212,7 @@ func generateFilters(responseRaw []map[string]interface{}, filterKeys []string) } // Function to fetch filter data of dataset -func fetchfilterJSON(dataset string) ([]FilterGroup, error) { +func fetchfilterJSON(kpi string) ([]FilterGroup, error) { // Define struct for the result var dataSetFilter struct { @@ -227,7 +227,7 @@ func fetchfilterJSON(dataset string) ([]FilterGroup, error) { err := app.DB(). Select("id", "full_data_url", "filter_keys", "file_status", "dataset"). From("data_set_filter"). - Where(dbx.HashExp{"dataset": dataset}). + Where(dbx.HashExp{"kpi": kpi}). One(&dataSetFilter) if err != nil { @@ -409,13 +409,32 @@ func main() { languageSourceConverted = append(languageSourceConverted, record.SchemaData()) } - filterData, err := fetchfilterJSON(dataset) - - // Translate filter data using the desired dataset and language key - fRes, err := TranslateFilters(app, dataset, filterData, "value_en") - if err != nil { - log.Fatalf("Error translating filters: %v", err) + //get all filter based of kpi + var dataSetKpis []struct { + Kpi string `db:"kpi" json:"kpi"` } + err = app.DB().Select("kpi").From("charts").Where(dbx.HashExp{"dataset": dataset}).GroupBy("kpi").All(&dataSetKpis) + if err != nil { + log.Fatalf("Failed to get kpi groupby data: %v", err) + } + + aggregatedFilterResponse := make(map[string]interface{}) + for _, dataSetKpi := range dataSetKpis { + + kpi := dataSetKpi.Kpi + filterData, err := fetchfilterJSON(kpi) + + // Translate filter data using the desired dataset and language key + fRes, err := TranslateFilters(app, dataset, filterData, "value_en") + if err != nil { + log.Fatalf("Error translating filters: %v", err) + } + + aggregatedFilterResponse[kpi] = fRes + + } + + // filterData, err := fetchfilterJSON(dataset) for _, record := range records { // Extract the URL for each record @@ -467,7 +486,7 @@ func main() { // Create the response structure response := map[string]interface{}{ - "filter_data": fRes, + "filter_data": aggregatedFilterResponse, "data": aggregatedResponse, } diff --git a/pb_data/data.db b/pb_data/data.db index 8e82b79..c7bae22 100644 Binary files a/pb_data/data.db and b/pb_data/data.db differ diff --git a/pb_data/data.db-shm b/pb_data/data.db-shm new file mode 100644 index 0000000..fe9ac28 Binary files /dev/null and b/pb_data/data.db-shm differ diff --git a/pb_data/data.db-wal b/pb_data/data.db-wal new file mode 100644 index 0000000..e69de29 diff --git a/pb_data/logs.db-shm b/pb_data/logs.db-shm new file mode 100644 index 0000000..fe9ac28 Binary files /dev/null and b/pb_data/logs.db-shm differ diff --git a/pb_data/logs.db-wal b/pb_data/logs.db-wal new file mode 100644 index 0000000..e69de29 diff --git a/pb_data/storage/35g5fuzn1qgp9k7/64keeft2kp1d2s8/file_gN24gjKtpy.enc b/pb_data/storage/35g5fuzn1qgp9k7/64keeft2kp1d2s8/file_gN24gjKtpy.enc new file mode 100644 index 0000000..813343b Binary files /dev/null and b/pb_data/storage/35g5fuzn1qgp9k7/64keeft2kp1d2s8/file_gN24gjKtpy.enc differ diff --git a/pb_data/storage/35g5fuzn1qgp9k7/64keeft2kp1d2s8/file_gN24gjKtpy.enc.attrs b/pb_data/storage/35g5fuzn1qgp9k7/64keeft2kp1d2s8/file_gN24gjKtpy.enc.attrs new file mode 100644 index 0000000..10831b6 --- /dev/null +++ b/pb_data/storage/35g5fuzn1qgp9k7/64keeft2kp1d2s8/file_gN24gjKtpy.enc.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/jpeg","user.metadata":{"original-filename":"file.enc"},"md5":"vBw+7shsc/yBqxUxLwI37Q=="}