From 4ecc7d0ba2417862a500c1fd36426b1f0a6b9d70 Mon Sep 17 00:00:00 2001 From: Gowtham M Date: Thu, 16 Jan 2025 09:20:10 +0530 Subject: [PATCH 1/4] KPI name change : GWM --- main.go | 1218 ++++++++++++++++++----------------- pb_data/data.db | Bin 176128 -> 184320 bytes pb_data/data.db-shm | Bin 32768 -> 32768 bytes pb_data/data.db-wal | Bin 16512 -> 49472 bytes pb_data/logs.db | Bin 770048 -> 770048 bytes pb_data/logs.db-shm | Bin 32768 -> 32768 bytes pb_data/logs.db-wal | Bin 90672 -> 156592 bytes utils/process_chart_data.go | 48 ++ 8 files changed, 662 insertions(+), 604 deletions(-) create mode 100644 utils/process_chart_data.go diff --git a/main.go b/main.go index 3a4fbd0..53c515c 100644 --- a/main.go +++ b/main.go @@ -11,6 +11,8 @@ import ( "net/http" "net/mail" "os" + + // "pocketbase/utils" "strings" "time" @@ -337,6 +339,311 @@ func main() { app = pocketbase.New() + //app.Router.GET("/verify-email", verifyEmailHandler) + + app.OnBeforeServe().Add(func(e *core.ServeEvent) error { + + e.Router.GET("/api/custom/apicalltest", func(c echo.Context) error { + // Get the database instance + db := app.Dao().DB() + + // Define the struct for the expected result + type Chart struct { + Dataset string `json:"dataset"` + Key string `json:"key"` + Value string `json:"value"` + ValueEn string `json:"value_en"` + ValueAr string `json:"value_ar"` + } + + // Query to fetch the data + sqlQuery := "SELECT * FROM charts_variables" + var results []Chart + + // Execute the query + err := db.NewQuery(sqlQuery).All(&results) + if err != nil { + // Log the error details for better debugging + log.Printf("Failed to execute query: %v", err) + return c.JSON(http.StatusInternalServerError, map[string]string{"error": "Failed to execute query", "details": err.Error()}) + } + + // Check if results are empty + if len(results) == 0 { + return c.JSON(http.StatusNotFound, map[string]string{"error": "No records found"}) + } + + // Return the results + return c.JSON(http.StatusOK, results) + }) + + e.Router.GET("/api/getDataSet", func(c echo.Context) error { + + dataset := c.QueryParam("dataset") + if dataset == "" { + return c.JSON(http.StatusBadRequest, map[string]string{"error": "dataset is required"}) + } + + // Fetch all matching records manually + filter := dbx.NewExp("dataset = {:dataset}", dbx.Params{"dataset": dataset}) + records, err := app.Dao().FindRecordsByExpr("charts", filter) + if err != nil { + log.Printf("Failed to fetch records for dataset '%s': %v", dataset, err) + return c.JSON(http.StatusInternalServerError, map[string]string{"error": "Failed to fetch records"}) + } + if len(records) == 0 { + return c.JSON(http.StatusNotFound, map[string]string{"error": "No records found for the given dataset"}) + } + + var aggregatedResponse []map[string]interface{} + + param := dbx.NewExp("dataset = {:dataset}", dbx.Params{"dataset": dataset}) + languageSource, err := app.Dao().FindRecordsByExpr("charts_variables", param) + if err != nil { + log.Printf("Failed to fetch language source: %v", err) + } + // Convert languageSource to []map[string]interface{} + languageSourceConverted := []map[string]interface{}{} + for _, record := range languageSource { + 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) + // } + + for _, record := range records { + // Extract the URL for each record + apiURL := record.GetString("url") + file_name := record.GetString("kpi_file_name") + if apiURL == "" { + log.Printf("No URL for record '%v'", record) + continue // Skip records with no URL + } + + // Fetch and convert XML to JSON + saveToFile := record.GetBool("file_status") + chartId := record.GetString("id") + if !saveToFile { // Check if saveToFile is false + _, err := fetchAndConvertXMLToJSON(apiURL, "kpi_files", file_name, "charts", chartId) + if err != nil { + log.Printf("Failed to process URL '%s': %v", apiURL, err) + continue // Skip this record and proceed with others + } + } + + // Read the JSON data from the file + chartData, err := readJSONFromFile("kpi_files", file_name) + if err != nil { + log.Printf("Failed to read JSON for KPI '%s': %v", file_name, err) + } + + // langKey := "value_en" + // cRes := utils.ProcessChartData(chartData, languageSourceConverted, langKey) + + // Prepare the structure with URL and its response + recordResult := map[string]interface{}{ + "url": apiURL, + "dataset": record.GetString("dataset"), + "main_id": record.GetString("main_id"), + "sub_id": record.GetString("sub_id"), + "kpi": record.GetString("kpi"), + "is_chart": record.GetString("is_chart"), + "chart_type": record.GetString("chart_type"), + "response": chartData, + "group_by": record.GetString("group_by"), + "chart_heading": record.GetString("chart_heading"), + } + + // Add the result to the aggregated response + aggregatedResponse = append(aggregatedResponse, recordResult) + + } + + // Create the response structure + response := map[string]interface{}{ + "filter_data": filterData, + "data": aggregatedResponse, + } + + if len(aggregatedResponse) == 0 { + return c.JSON(http.StatusInternalServerError, map[string]string{"error": "No data could be fetched from the provided URLs"}) + } + + return c.JSON(http.StatusOK, response) + }) + + e.Router.GET("/api/getHomePageData", func(c echo.Context) error { + + // Define the struct for holding the query results + mainTopics := []struct { + MainTopic string `db:"main_topic" json:"main_topic"` + MainTopicListOrder string `db:"main_topic_list_order" json:"main_topic_list_order"` + ColorPattern string `db:"color_pattern" json:"color_pattern"` + }{} + + // Execute the query + err := app.DB(). + Select("main_topic", "main_topic_list_order", "color_pattern"). + From("home_screen"). + GroupBy("main_topic", "color_pattern"). + OrderBy("main_topic_list_order ASC"). + All(&mainTopics) + + if err != nil { + log.Printf("Failed to fetch home_screen data: %v", err) + return c.JSON(http.StatusInternalServerError, map[string]string{"error": "Failed to fetch records"}) + } + + // If no records are found + if len(mainTopics) == 0 { + return c.JSON(http.StatusNotFound, map[string]string{"error": "No records found for home screen"}) + } + + // Final result structure + result := []map[string]interface{}{} + + // Loop through main topics and fetch sub-topic data for each + for _, mainTopic := range mainTopics { + + dataSets := []struct { + DataSet string `db:"data_set" json:"data_set"` + DataSetTileHeading string `db:"data_set_tile_heading" json:"data_set_tile_heading"` + ValueSource string `db:"value_source" json:"value_source"` + Value string `db:"value" json:"value"` + DataSetListOrder string `db:"data_set_list_order" json:"data_set_list_order"` + }{} + + err := app.DB(). + NewQuery("SELECT data_set, data_set_tile_heading, value_source, value, data_set_list_order FROM home_screen WHERE main_topic={:topic} "). + Bind(dbx.Params{ + "topic": mainTopic.MainTopic, + }). + All(&dataSets) + + if err != nil { + log.Printf("Error fetching data sets: %v", err) + continue + } + + // Add the main topic and its sub-topics to the result + result = append(result, map[string]interface{}{ + "main_topic": mainTopic.MainTopic, + "main_topic_list_order": mainTopic.MainTopicListOrder, + "color_pattern": mainTopic.ColorPattern, + "tile_data": dataSets, + }) + } + + // Send the combined result as JSON + return c.JSON(http.StatusOK, result) + + }) + + e.Router.GET("/api/getUAENumbersData", func(c echo.Context) error { + + // Define the struct for holding the query results + mainTopics := []struct { + MainTopic string `db:"main_topic" json:"main_topic"` + MainTopicListOrder string `db:"main_topic_list_order" json:"main_topic_list_order"` + ColorPattern string `db:"color_pattern" json:"color_pattern"` + }{} + + // Execute the query + err := app.DB(). + Select("main_topic", "main_topic_list_order", "color_pattern"). + From("uae_numbers_screen"). + GroupBy("main_topic", "color_pattern"). + OrderBy("main_topic_list_order ASC"). + All(&mainTopics) + + if err != nil { + log.Printf("Failed to fetch uae_numbers_screen data: %v", err) + return c.JSON(http.StatusInternalServerError, map[string]string{"error": "Failed to fetch records"}) + } + + // If no records are found + if len(mainTopics) == 0 { + return c.JSON(http.StatusNotFound, map[string]string{"error": "No records found for home screen"}) + } + + // Final result structure + result := []map[string]interface{}{} + + // Loop through main topics and fetch sub-topic data for each + for _, mainTopic := range mainTopics { + subTopics := []struct { + SubTopic string `db:"sub_topic" json:"sub_topic"` + SubTopicListOrder string `db:"sub_topic_list_order" json:"sub_topic_list_order"` + }{} + + // Query to get sub-topics for the current main topic + err := app.DB(). + Select("sub_topic", "sub_topic_list_order"). + From("uae_numbers_screen"). + Where(dbx.HashExp{"main_topic": mainTopic.MainTopic}). + GroupBy("sub_topic"). + OrderBy("sub_topic_list_order ASC"). + All(&subTopics) + + if err != nil { + log.Printf("Failed to fetch sub-topics for main topic %s: %v", mainTopic.MainTopic, err) + continue + } + + result2 := []map[string]interface{}{} + // Loop through sub Topics topics and fetch dataSet data for each + for _, subTopic := range subTopics { + + dataSets := []struct { + DataSet string `db:"data_set" json:"data_set"` + DataSetTileHeading string `db:"data_set_tile_heading" json:"data_set_tile_heading"` + ValueSource string `db:"value_source" json:"value_source"` + Value string `db:"value" json:"value"` + DataSetListOrder string `db:"data_set_list_order" json:"data_set_list_order"` + }{} + + // Query to get data-set for the current sub topic + err := app.DB(). + Select("data_set", "data_set_tile_heading", "value_source", "value", "data_set_list_order"). + From("uae_numbers_screen"). + Where(dbx.HashExp{"sub_topic": subTopic.SubTopic}). + OrderBy("data_set_list_order ASC"). + All(&dataSets) + + if err != nil { + log.Printf("Failed to fetch data-set for sub topic %s: %v", subTopic.SubTopic, err) + continue + } + + result2 = append(result2, map[string]interface{}{ + "sub_topic": subTopic.SubTopic, + "sub_topic_list_order": subTopic.SubTopicListOrder, + "tile_data": dataSets, + }) + } + + // Add the main topic and its sub-topics to the result + result = append(result, map[string]interface{}{ + "main_topic": mainTopic.MainTopic, + "main_topic_list_order": mainTopic.MainTopicListOrder, + "color_pattern": mainTopic.ColorPattern, + "sub_topics": result2, + }) + } + + // Send the combined result as JSON + return c.JSON(http.StatusOK, result) + + }) + + return nil + }) + //send mail while status changed from app admin app.OnRecordBeforeUpdateRequest().Add(func(e *core.RecordUpdateEvent) error { if e.Collection.Name == "users" { @@ -375,17 +682,17 @@ func main() { // Email body body := fmt.Sprintf(` - - -

Dear %s,

-

Thank you for registering. Please click the link below to verify your email address:

-

- Verify Email -

-

If you did not register for this account, please ignore this email.

- - - `, name, verificationURL) + + +

Dear %s,

+

Thank you for registering. Please click the link below to verify your email address:

+

+ Verify Email +

+

If you did not register for this account, please ignore this email.

+ + + `, name, verificationURL) // Create the email message message := &mailer.Message{ @@ -436,6 +743,147 @@ func main() { }) } + // Check if the email is already verified + if record.GetBool("reviewed") { + return c.HTML(http.StatusOK, ` + + + + + +
+
+

Your Already Reviewed

+

You have already been reviewed. No further action is required.

+
+ + + `) + } + + // Update the status + newStatus := "Approved" + record.Set("verified", true) + record.Set("status", newStatus) + record.Set("reviewed", true) + if err := app.Dao().SaveRecord(record); err != nil { + return c.JSON(500, map[string]interface{}{ + "code": 500, + "message": "Failed to verify user.", + }) + } + + // Send the status change email + err = sendStatusChangeEmail(app, record, newStatus) + if err != nil { + return c.JSON(500, map[string]interface{}{ + "code": 500, + "message": "Failed to send approval email.", + }) + } + + return c.HTML(http.StatusOK, ` + + + + + +
+ +

User Approved Successfully

+

The user has been approved, and the approval email has been sent.

+
+ + + `) + }) + + return nil + }) + + app.OnBeforeServe().Add(func(e *core.ServeEvent) error { + + // Approve Endpoint + e.Router.GET("/api/custom/reject", func(c echo.Context) error { + userId := c.QueryParam("userId") + if userId == "" { + return c.JSON(400, map[string]interface{}{ + "code": 400, + "message": "Missing userId query parameter.", + }) + } + + // Find the user record in PocketBase by userId + record, err := app.Dao().FindRecordById("users", userId) + if err != nil { + return c.JSON(500, map[string]interface{}{ + "code": 500, + "message": "Error finding user.", + }) + } + // Check if the email is already verified if record.GetBool("reviewed") { return c.HTML(http.StatusOK, ` @@ -485,147 +933,6 @@ func main() { `) } - // Update the status - newStatus := "Approved" - record.Set("verified", true) - record.Set("status", newStatus) - record.Set("reviewed", true) - if err := app.Dao().SaveRecord(record); err != nil { - return c.JSON(500, map[string]interface{}{ - "code": 500, - "message": "Failed to verify user.", - }) - } - - // Send the status change email - err = sendStatusChangeEmail(app, record, newStatus) - if err != nil { - return c.JSON(500, map[string]interface{}{ - "code": 500, - "message": "Failed to send approval email.", - }) - } - - return c.HTML(http.StatusOK, ` - - - - - -
- -

User Approved Successfully

-

The user has been approved, and the approval email has been sent.

-
- - - `) - }) - - return nil - }) - - app.OnBeforeServe().Add(func(e *core.ServeEvent) error { - - // Approve Endpoint - e.Router.GET("/api/custom/reject", func(c echo.Context) error { - userId := c.QueryParam("userId") - if userId == "" { - return c.JSON(400, map[string]interface{}{ - "code": 400, - "message": "Missing userId query parameter.", - }) - } - - // Find the user record in PocketBase by userId - record, err := app.Dao().FindRecordById("users", userId) - if err != nil { - return c.JSON(500, map[string]interface{}{ - "code": 500, - "message": "Error finding user.", - }) - } - - // Check if the email is already verified - if record.GetBool("reviewed") { - return c.HTML(http.StatusOK, ` - - - - - -
-
-

Your Already Reviewed

-

You have already been reviewed. No further action is required.

-
- - - `) - } - // Check if the status is already "Denied" to avoid duplicate email if record.GetString("status") == "Denied" { return c.JSON(400, map[string]interface{}{ @@ -657,45 +964,45 @@ func main() { // Render a success message as an HTML response return c.HTML(http.StatusOK, ` - - - - - - User Rejected - - - -
- -

User Rejected

-

Rejection email sent successfully.

-
- - - `) + + + + + + User Rejected + + + +
+ +

User Rejected

+

Rejection email sent successfully.

+
+ + + `) }) return nil @@ -750,32 +1057,32 @@ func main() { // Email body in HTML format body := fmt.Sprintf(` - - -

Dear %s,

-

You have received new feedback from a user through the mobile application.

-

User Details:

- -

Feedback:

-
-				1. How was your experience with us today? Rating: %s
-				2. How did we perform in key areas?
-					1. Ease of Use: %s
-					2. Quality: %s
-					3. Design: %s
-					4. Redundancy: %s
-				3. Additional Feedback:
-					1. %s
-				
-

Thank you,

-

The FCSC App Team

- - - `, adminName, userName, formattedDate, formattedDateTime, emojiRating, easeOfUse, quality, design, redundancy, additionalFeedback) + + +

Dear %s,

+

You have received new feedback from a user through the mobile application.

+

User Details:

+ +

Feedback:

+
+					1. How was your experience with us today? Rating: %s
+					2. How did we perform in key areas?
+						1. Ease of Use: %s
+						2. Quality: %s
+						3. Design: %s
+						4. Redundancy: %s
+					3. Additional Feedback:
+						1. %s
+					
+

Thank you,

+

The FCSC App Team

+ + + `, adminName, userName, formattedDate, formattedDateTime, emojiRating, easeOfUse, quality, design, redundancy, additionalFeedback) // Define the target type (e.g., "smtp") targetType := "feedback_receive_mail" @@ -852,8 +1159,8 @@ func main() { Subject: "YOUR VERIFICATION CODE", HTML: fmt.Sprintf( `

Thanks for verifying your %s account!

-

Your code is: %d

-

Sincerely,
Support team.

`, +

Your code is: %d

+

Sincerely,
Support team.

`, email, otp, ), } @@ -884,303 +1191,6 @@ func main() { } }() - //app.Router.GET("/verify-email", verifyEmailHandler) - - app.OnBeforeServe().Add(func(e *core.ServeEvent) error { - - e.Router.GET("/api/custom/apicalltest", func(c echo.Context) error { - // Get the database instance - db := app.Dao().DB() - - // Define the struct for the expected result - type Chart struct { - Dataset string `json:"dataset"` - Key string `json:"key"` - Value string `json:"value"` - ValueEn string `json:"value_en"` - ValueAr string `json:"value_ar"` - } - - // Query to fetch the data - sqlQuery := "SELECT * FROM charts_variables" - var results []Chart - - // Execute the query - err := db.NewQuery(sqlQuery).All(&results) - if err != nil { - // Log the error details for better debugging - log.Printf("Failed to execute query: %v", err) - return c.JSON(http.StatusInternalServerError, map[string]string{"error": "Failed to execute query", "details": err.Error()}) - } - - // Check if results are empty - if len(results) == 0 { - return c.JSON(http.StatusNotFound, map[string]string{"error": "No records found"}) - } - - // Return the results - return c.JSON(http.StatusOK, results) - }) - - e.Router.GET("/api/getDataSet", func(c echo.Context) error { - - dataset := c.QueryParam("dataset") - if dataset == "" { - return c.JSON(http.StatusBadRequest, map[string]string{"error": "dataset is required"}) - } - - // Fetch all matching records manually - filter := dbx.NewExp("dataset = {:dataset}", dbx.Params{"dataset": dataset}) - records, err := app.Dao().FindRecordsByExpr("charts", filter) - if err != nil { - log.Printf("Failed to fetch records for dataset '%s': %v", dataset, err) - return c.JSON(http.StatusInternalServerError, map[string]string{"error": "Failed to fetch records"}) - } - if len(records) == 0 { - return c.JSON(http.StatusNotFound, map[string]string{"error": "No records found for the given dataset"}) - } - - var aggregatedResponse []map[string]interface{} - - // param := dbx.NewExp("dataset = {:dataset}", dbx.Params{"dataset": dataset}) - // languageSourceRaw, err := app.Dao().FindRecordsByExpr("charts_variables", param) - // if err != nil { - // log.Printf("Failed to fetch language source: %v", err) - // } - - 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) - // } - - for _, record := range records { - // Extract the URL for each record - apiURL := record.GetString("url") - kpi := record.GetString("kpi") - if apiURL == "" { - log.Printf("No URL for record '%v'", record) - continue // Skip records with no URL - } - - // Fetch and convert XML to JSON - saveToFile := record.GetBool("file_status") - chartId := record.GetString("id") - if !saveToFile { // Check if saveToFile is false - _, err := fetchAndConvertXMLToJSON(apiURL, "kpi_files", kpi, "charts", chartId) - if err != nil { - log.Printf("Failed to process URL '%s': %v", apiURL, err) - continue // Skip this record and proceed with others - } - } - - // Read the JSON data from the file - response, err := readJSONFromFile("kpi_files", kpi) - if err != nil { - log.Printf("Failed to read JSON for KPI '%s': %v", kpi, err) - } - - // Prepare the structure with URL and its response - recordResult := map[string]interface{}{ - "url": apiURL, - "dataset": record.GetString("dataset"), - "main_id": record.GetString("main_id"), - "sub_id": record.GetString("sub_id"), - "kpi": record.GetString("kpi"), - "is_chart": record.GetString("is_chart"), - "chart_type": record.GetString("chart_type"), - "response": response, - "group_by": record.GetString("group_by"), - "chart_heading": record.GetString("chart_heading"), - } - - // Add the result to the aggregated response - aggregatedResponse = append(aggregatedResponse, recordResult) - - } - - // Create the response structure - response := map[string]interface{}{ - "filter_data": filterData, - "data": aggregatedResponse, - } - - if len(aggregatedResponse) == 0 { - return c.JSON(http.StatusInternalServerError, map[string]string{"error": "No data could be fetched from the provided URLs"}) - } - - return c.JSON(http.StatusOK, response) - }) - - e.Router.GET("/api/getHomePageData", func(c echo.Context) error { - - // Define the struct for holding the query results - mainTopics := []struct { - MainTopic string `db:"main_topic" json:"main_topic"` - MainTopicListOrder string `db:"main_topic_list_order" json:"main_topic_list_order"` - ColorPattern string `db:"color_pattern" json:"color_pattern"` - }{} - - // Execute the query - err := app.DB(). - Select("main_topic", "main_topic_list_order", "color_pattern"). - From("home_screen"). - GroupBy("main_topic", "color_pattern"). - OrderBy("main_topic_list_order ASC"). - All(&mainTopics) - - if err != nil { - log.Printf("Failed to fetch home_screen data: %v", err) - return c.JSON(http.StatusInternalServerError, map[string]string{"error": "Failed to fetch records"}) - } - - // If no records are found - if len(mainTopics) == 0 { - return c.JSON(http.StatusNotFound, map[string]string{"error": "No records found for home screen"}) - } - - // Final result structure - result := []map[string]interface{}{} - - // Loop through main topics and fetch sub-topic data for each - for _, mainTopic := range mainTopics { - - dataSets := []struct { - DataSet string `db:"data_set" json:"data_set"` - DataSetTileHeading string `db:"data_set_tile_heading" json:"data_set_tile_heading"` - ValueSource string `db:"value_source" json:"value_source"` - Value string `db:"value" json:"value"` - DataSetListOrder string `db:"data_set_list_order" json:"data_set_list_order"` - }{} - - // Query to get data-set for the current sub topic - err := app.DB(). - Select("data_set", "data_set_tile_heading", "value_source", "value", "data_set_list_order"). - From("home_screen"). - Where(dbx.HashExp{"show_in_home_page": 1}). - OrderBy("data_set_list_order ASC"). - All(&dataSets) - - if err != nil { - continue - } - - // Add the main topic and its sub-topics to the result - result = append(result, map[string]interface{}{ - "main_topic": mainTopic.MainTopic, - "main_topic_list_order": mainTopic.MainTopicListOrder, - "color_pattern": mainTopic.ColorPattern, - "tile_data": dataSets, - }) - } - - // Send the combined result as JSON - return c.JSON(http.StatusOK, result) - - }) - - e.Router.GET("/api/getUAENumbersData", func(c echo.Context) error { - - // Define the struct for holding the query results - mainTopics := []struct { - MainTopic string `db:"main_topic" json:"main_topic"` - MainTopicListOrder string `db:"main_topic_list_order" json:"main_topic_list_order"` - ColorPattern string `db:"color_pattern" json:"color_pattern"` - }{} - - // Execute the query - err := app.DB(). - Select("main_topic", "main_topic_list_order", "color_pattern"). - From("home_screen"). - GroupBy("main_topic", "color_pattern"). - OrderBy("main_topic_list_order ASC"). - All(&mainTopics) - - if err != nil { - log.Printf("Failed to fetch home_screen data: %v", err) - return c.JSON(http.StatusInternalServerError, map[string]string{"error": "Failed to fetch records"}) - } - - // If no records are found - if len(mainTopics) == 0 { - return c.JSON(http.StatusNotFound, map[string]string{"error": "No records found for home screen"}) - } - - // Final result structure - result := []map[string]interface{}{} - - // Loop through main topics and fetch sub-topic data for each - for _, mainTopic := range mainTopics { - subTopics := []struct { - SubTopic string `db:"sub_topic" json:"sub_topic"` - SubTopicListOrder string `db:"sub_topic_list_order" json:"sub_topic_list_order"` - }{} - - // Query to get sub-topics for the current main topic - err := app.DB(). - Select("sub_topic", "sub_topic_list_order"). - From("home_screen"). - Where(dbx.HashExp{"main_topic": mainTopic.MainTopic}). - GroupBy("sub_topic"). - OrderBy("sub_topic_list_order ASC"). - All(&subTopics) - - if err != nil { - log.Printf("Failed to fetch sub-topics for main topic %s: %v", mainTopic.MainTopic, err) - continue - } - - result2 := []map[string]interface{}{} - // Loop through sub Topics topics and fetch dataSet data for each - for _, subTopic := range subTopics { - - dataSets := []struct { - DataSet string `db:"data_set" json:"data_set"` - DataSetTileHeading string `db:"data_set_tile_heading" json:"data_set_tile_heading"` - ValueSource string `db:"value_source" json:"value_source"` - Value string `db:"value" json:"value"` - DataSetListOrder string `db:"data_set_list_order" json:"data_set_list_order"` - }{} - - // Query to get data-set for the current sub topic - err := app.DB(). - Select("data_set", "data_set_tile_heading", "value_source", "value", "data_set_list_order"). - From("home_screen"). - Where(dbx.HashExp{"sub_topic": subTopic.SubTopic}). - OrderBy("data_set_list_order ASC"). - All(&dataSets) - - if err != nil { - log.Printf("Failed to fetch data-set for sub topic %s: %v", subTopic.SubTopic, err) - continue - } - - result2 = append(result2, map[string]interface{}{ - "sub_topic": subTopic.SubTopic, - "sub_topic_list_order": subTopic.SubTopicListOrder, - "tile_data": dataSets, - }) - } - - // Add the main topic and its sub-topics to the result - result = append(result, map[string]interface{}{ - "main_topic": mainTopic.MainTopic, - "main_topic_list_order": mainTopic.MainTopicListOrder, - "color_pattern": mainTopic.ColorPattern, - "sub_topics": result2, - }) - } - - // Send the combined result as JSON - return c.JSON(http.StatusOK, result) - - }) - - return nil - }) - // Start your custom HTTP server on port 8091 log.Println("Starting custom HTTP server on :8091") if err := http.ListenAndServe(":8091", nil); err != nil { @@ -1232,50 +1242,50 @@ func verifyEmailHandler(c echo.Context) error { // Check if the email is already verified if record.GetBool("user_mail_verify") { return c.HTML(http.StatusOK, ` - - - - - -
-
-

Email Already Verified

-

Your email has already been verified. No further action is required.

-
- - -`) + + + + + +
+
+

Email Already Verified

+

Your email has already been verified. No further action is required.

+
+ + + `) } // Set the verified status to true @@ -1289,50 +1299,50 @@ func verifyEmailHandler(c echo.Context) error { } response := c.HTML(http.StatusOK, ` - - - - - -
-
-

Your registration is pending for Admin Approval

-

Access will be granted once your account is approved.

-
- - -`) + + + + + +
+
+

Your registration is pending for Admin Approval

+

Access will be granted once your account is approved.

+
+ + + `) // Fetch user details for email notification username := record.GetString("username") diff --git a/pb_data/data.db b/pb_data/data.db index e304572096c4c3595470a7bff635a145d312441a..e0bc26406e1a2c60dacc7a96b5069c1cef8ad5d0 100644 GIT binary patch delta 1829 zcma)7Z)_7~7{B-F*7n-%UOE_MENuP5=0?|YckQ*k;*CE724$dt5*Ky5wO3YHd!yHG zEd)nZ2rxi#A#XG&TSNniQwed^L=*f#_+Uar!v_+Be({SD{AARGMBlP7O$WhC?$7f) z_dM_K`G4>y+rdfuo6Qa{!!Uk&-@hWKx`N1ivH#rIVixx>_$a=Oui!ksiQmO4?!gx? zIo1U6qJ<_O(g%x)q-+#M!iE^;d3Hj5<9(`>Wbh0=fZxL3;a~8F_-mZRe^8~(*tysw zpuDQ}W%B6(Eo<}{@vNq0%o7LBMiKkk%-QnHS+upEg_jxjRr=^UwYKH6E)XGl(rsSg zvo;Fv9B|yj=}?rYCMTpJH4}~w=!Pf_sD?J*^l25GWe>olne?#Gh6Ucmhhw4`6Quwj zmC7X+4z@S5hZvj1hq#-TYZf0Dw*F~-q5iym+SXuqUJ@2yi=*T+af%apea$F{lqT6t zE_cHcb1thUG(^U`!Hp2%x}lw1i$cH-oU#xtq(A!+`Mn$DZD@;{OX(SP$h9^e*YlYi z5_wVb^Maq3U4jq`^08nfAVm3IArO*wbWo|#>FQX!VSOiG*tk*V*YWGarDijytVAn) zO~{SN=Z`}lJ=Cdy!0{zpEvLAVdsbwTp`D8SGOVDloiYS!Y?I81@=+O_$XX{cqlypt z$O##ikjpW69+k*s3=B?o@zIzh#{@AD79+&H3L44uDmYSuN03pL9|w%+Cv%5vR^UZT z$!_5kFCxcf@Y7?ykfGP+s^OF-)J8ogR~2}YvT0DBag>&#N<<>}BBD6k+@!P`nyK{6 zYVbA84-RRMLa>1*`q*q7SwCCRvXZ~LVatmDAF-J=P{Z3yrW;Is3wy+LgC_H;$urKg zm0I$i?wqToszN4r5wu(Nl$=Wz(s8l^;63Y}#OPqAD8$LP08>_NUvW=l*hr9;8aUIS zC3Pb�NcHo{XB-JTVXXZ5kRUO8bvl^Mk{?lcE?WMlDQQ2Xo1h>|jD8t^46^D=(zf zUB$vE`O*xX6XW|!mcs5)y_hTzpA{aXj1>814C*^(t2P*lg@OSgBK6)co@##iND+$d zO?5voZ0%hJe_wkSpR~8weqLmxiof|9JOm%Lh3DZi)N~8R5k5*+STFICcm3vd^VLh7@cIY`e12)|wLW#VP z3x-CuT-F$l7#rexMo$;Thgk?m!|OVpQZp{UtA}jt1`47UCsAZMt;IcvWRnRR!Br;Z^wy4JIF3b?`rqJokD4 delta 789 zcmZWnT}V@57(UhMX@Zt3 zgjE-6gTAZKup$UC5jO%u3%c*;svpU#3c>3r2s&ojMIXHH&HM0v&(AwPYaZV)O*zUu z6h#HK`un2Op$PIUcHF!!vHp4 z_i*>+`0)82Z^+x5>PdSQ?_g)&aC=v8duLxyy8S}xY&sVlY9%c+_%SEDxwsM)m8ihR zqf#M5!+5}97Accql`^a{UyY|ME5;uskLd~Xys6wYyTq5y87vtaVpJPMYhX)|_z`F{+LBX$T@p;3G*1JY-aYHnW~lJ+voiM;@B!WeAWF750%z z6)dDnhDt-mWMEVuO%_xLlczF#F=nhLMh&7Md7{EzvZlZZaz%k+lgM(Bcv4_xKbcaX z!t6oYYkf$y+lfzslUQ1QBoS`m~W))7mI6lnn zpgASNvm!4i`HV})sCMMv*3g)ML)-KNWFY~yrMREE`A1$v`%Wfx5>)MKtRhVk;3`p+ zS@}Tq(NwQH>~2X7WQsv^4Ow?w`yhe*+b|~X<|IXnf#cbjC=fLcm8IGNP3}6Z+WcfQ z0gitryEU#cEi{FXv9Y+2)EEnG)dD97HSX%hrh_&42GDUvptF?4NoTdxM(IL!1V#cC z7As}YuT%J~e!b+Q*=hPjmm6PefERi^G2}GZCi=DJ^PyWcg`#_C87e~V|1ZdUX8^eh euO2~(4q`6Sx&TqVpQ2!`@N*We0NHwg!oL7n+R1PL diff --git a/pb_data/data.db-shm b/pb_data/data.db-shm index 3c61e2320a32e70283f5abfdcc1e5878dc733103..dc00d5dfe68d8c8a52a5d4cf0e4d5cd75748ef7f 100644 GIT binary patch delta 241 zcmZo@U}|V!s+V}A%K!t63=9H1Kn_Txi9>qszn$~HFZP+B8G8AM!UFlahaVgdz9LmU z%xsXk|B(Px+>8Mv0RlkF8MuI08i*CK@RfjK%0LXJH!k#aVrFDu-MH{1FEcX(`^JUx jyv$4tY#SGzXJKYx;MlnEHxn}_12>rFV&K`h&{-S+EEqeC delta 181 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 cMgSv#5x@vw1TX>^0gM1f;He?dW`BYI0nOI>v zByA6%tl+?D{{kc~2m}Je6)oBehzmmEzyU5G?h6uogA3!NNnK~F4Wd-5<;`jGdSpNT z&CL5+GmrM>;B{{9*Yh0r5EuNOcJ>7%omusoY}B`k z$k^Uja#gyRam#LL?*+#%xMim(&Sx@iwd{B9s*AE_%DO32Nmf-GNffWmu&a1hoS9!- zn3Z>zmJIo_yg(a|_a&|I_!Lv7@K(x*Dx;>1B}|CzdrmgD=KAbuYe93XxKE3_C8YW_ zMRD4Smdk$5E4O7eJH{faG?P$CL)50!kc`VS&pKssPF!(3k#$sOS(_;g2^=0sT9fg~ zbc&yhTdC9$fz(8@sj$~WhFx(h)nfC>tDRQK-N%YjRJOBz4d>OD+)TkK#tyG{NmGf0 zv2G(-qWVfeOgUsl8i}E#HN{w^_$l5x*CmCRm`VmFcG1~zz4cAk%jBL9n&MK>bT+eY z&OnNx<9$*p9Eb^Z=q9BQ$)K98Nd&isufv5jM&gVMA8=t}y18hkVn|3)?P@t!subP5 zT(wv^s;CJZg(+TXM)p*%p5NW6 zP}$h77OFk0Uq%BVTak2a`sz$=C&(#bB+09sA4(<>Bqx(gS~xoQLXC<3q?O{QTPgNj zSBhn8LzNIgcA->pJwMh;vdhgsS=rMHCAJg_nQOFOKFIsMWmzN{nqgC&-ZRH?9DhDs z1j1NYbvnr!z~F@M7_9+~!5Ax){Md1YQemr>l{8{+W(%>Ug=Njxb=8sGZQWy0r{}te zBtkK(iz;c>MbuRn*(byet1%Q4j;M)8$oxw=hRA9(F-%#LG<+{P(@avjyf z00d5(z*t|Jk8Cz3f>>l@G#8fsn1QolE|?UtswS=gIf~_-Fw90zG|yK_?&p1b_e#00KY&2mk>f00e*l P5ct0m2+rdl0KdTBr5O(_ diff --git a/pb_data/logs.db b/pb_data/logs.db index 358112fdc5d572b83b28b2324181089359f3e114..3379b35a35cf9ca95aafeb56dbb82d767f65a338 100644 GIT binary patch delta 27902 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 JZV3_W{{dqKB$EID diff --git a/pb_data/logs.db-shm b/pb_data/logs.db-shm index 3ab8181a7d40c4c43bf6ecbb76996095f5bec973..cfbe788955ba131e43e481a7bfb623281f245039 100644 GIT binary patch literal 32768 zcmeI*NlpS$5CG6ZK@=yP5NB~pTzCc(kKl?JS8lnBI~Th35-!+z0Po-lynxZ)%7U0q zh$IjouaZjt)bFmY{|?Yyf4_(<3cp!BOV@VF`=__k&3UU``?##Uw5~p1n|ICY+H9&&nRH9>#? z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UATUUQnb;a+d%Xz|AV7e?Py|Y`G?e#v$+!!YV|(0>V15F9 z3KY^e=9XhUcH*ed4jv;gt^!jr7uDE^-8dfCBaGbKi*Yz|GZ`pPU^*(X61CWile}#; z0uwAyjQLoN&Df9A2|lHx5gk@Z z*Kx7|qYEPskol8?krzn)W@Tjr8qEh}`ZF?$PF7@G$;!&W%^(I8_{h)9&cF|3{A6Wi rV&Gs905ZRFurf1nG6;f1nOIpExEO?h%yL#nk;#gT^^C$mjyekf@k2y2 diff --git a/pb_data/logs.db-wal b/pb_data/logs.db-wal index 6244edc9ceeda1936c0deb98a4ab53c2e981906a..2ff397872576d2ea571c8fd84729ffdc1b9ff249 100644 GIT binary patch literal 156592 zcmeHw2Y?&Zx%FsQy1HBJCBWK&kf1Es*x25cMt#j@~J&yDB4T)JD>%(`;Nq z3t$s^2Lr~04yKvjNkV%h5E7ESKuF;6fD}kxNb>(@W>>OSd$p{)fsy>3@qTA!G;`

6FF?Bh&u<+p&Kg|D$6aYv3|e`bW<`^N%0?-$OrW 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�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 z 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 diff --git a/utils/process_chart_data.go b/utils/process_chart_data.go new file mode 100644 index 0000000..2577917 --- /dev/null +++ b/utils/process_chart_data.go @@ -0,0 +1,48 @@ +package utils + +// ProcessChartData processes chart data with language source data to produce the result based on the language key. +func ProcessChartData(chartData []map[string]interface{}, languageSource []map[string]interface{}, langKey string) []map[string]interface{} { + // Helper function to find translation + findTranslation := func(key string, value string) string { + for _, langEntry := range languageSource { + if langEntry["key"] == key && langEntry["value"] == value { + if translatedValue, ok := langEntry[langKey]; ok { + return translatedValue.(string) + } + } + } + return value // Return the original value if no translation is found + } + + // Extract unique translation keys from languageSource + translationKeys := map[string]bool{} + for _, langEntry := range languageSource { + if key, ok := langEntry["key"].(string); ok { + translationKeys[key] = true + } + } + + // Process each chart data entry + result := []map[string]interface{}{} + for _, entry := range chartData { + obsKey := entry["ObsKey"].(map[string]interface{}) + translatedObsKey := map[string]interface{}{} + + // Translate fields in ObsKey dynamically based on extracted translation keys + for key, value := range obsKey { + if translationKeys[key] { + translatedObsKey[key] = findTranslation(key, value.(string)) + } else { + translatedObsKey[key] = value + } + } + + // Append the translated entry to the result + result = append(result, map[string]interface{}{ + "ObsKey": translatedObsKey, + "ObsValue": entry["ObsValue"], + }) + } + + return result +} From b9574dd28fe6a61f902d1ef5ba2cdf14d222b933 Mon Sep 17 00:00:00 2001 From: Gowtham M Date: Thu, 16 Jan 2025 09:23:14 +0530 Subject: [PATCH 2/4] KPI name change : GWM --- pb_data/data.db | Bin 184320 -> 184320 bytes pb_data/data.db-shm | Bin 32768 -> 0 bytes pb_data/data.db-wal | Bin 49472 -> 0 bytes pb_data/logs.db | Bin 770048 -> 770048 bytes pb_data/logs.db-shm | Bin 32768 -> 0 bytes pb_data/logs.db-wal | Bin 156592 -> 0 bytes 6 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 pb_data/data.db-shm delete mode 100644 pb_data/data.db-wal delete mode 100644 pb_data/logs.db-shm delete mode 100644 pb_data/logs.db-wal diff --git a/pb_data/data.db b/pb_data/data.db index e0bc26406e1a2c60dacc7a96b5069c1cef8ad5d0..10e94c51e18b9dbd1f2e546cb33a78f3e483f534 100644 GIT binary patch delta 397 zcmZozz}>KbdxEr}3IhX!E)c_j^+X+GMwP~dtqF`v=S#AFVBo*XAI*1_FPbNd$C9g! z%bw#XM-S_V?Q#nk&$9Bj%E_>cw@LyDNlC^o-t8*O7_}HVm9h&m=-(cE+s?j9WSGY&H~F$;j2G!YZK6Au2grdV3EilNl2iSZ{n@ zVs7f>#_F!^K0HkI%+vUo#5wYlEECg`ijAgkhSw!uy}$;B+BrroF;VCM*Kd zwzArsvXZ*CP3o?k(z4SPq?uy)p{80`8Jg)?SXfSPlw~rXen^_BiX$bnEWao@wRk$4 zEYlyxXVaPGm>vl?i86!D;SdLzW6I0PD?3e|DH36fk&&K>u{p$;`SMJ0>`-I2|B+{6 G*#H0w%xGu; delta 410 zcmZozz}>KbdxEr}G6MsHE)c_j`9vLKM&-tYtqF`v=S#9lG4NmIkLJ6|7tNE!W69OV zWzTVxqlZmuyW9fCv#irEu4mHcYRQ*j7nhV|?6lneYbm1^BTGVdLFV+pC5*D${g*S! zFmCT&!B`c}$rQ)H*#snXCOXP(m#bx3$Eeh=$|j)AA*wuASP*Q#pslS%s%464PGX*! zMN)pTk?HjB#Y}3`wKVgGp-ojd~_NA+so69vcQ0E^%fqab7mQ_uPD&4Fz^_Za*c-V%K+o88dV?%e&~!Fgraz1yrZdYiJ(_+#o{3AaiJO^E+E!MZLtIkVw#k&2 wbNVewCiUs^@=Qkj21W`7=2ixVR;EUJW@e_-8)ccyr%#t>irfBIo{4z_00G@-b^rhX diff --git a/pb_data/data.db-shm b/pb_data/data.db-shm deleted file mode 100644 index dc00d5dfe68d8c8a52a5d4cf0e4d5cd75748ef7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 zcmeI*J!%3$6ae67jER4RrLaY!Ruy{*@=@C05UMDP?T1Kz+B#L~*n&SbV&5E2W) zX7GFP*qOJ(+j-vww!fQ16}5<7H*LzwqFKD3K0l7@>2f^VZeCX}^Y6pk*S>${`Kou> z_vb9m>*YFqJK8CWl!Jfv!&Dokte$Bp2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7vKOdDBl{T) zK!5-N0t5&UAV7csfqN6E$Me07Y+eEc2oNAZfB*pk1PELZc!;M9ZENS zvilOakw7atH|nGff!qYzQT|g%5FkK+009C72oNAZfB*pk1PBlyK!5-N0)GX50qROB A&j0`b diff --git a/pb_data/data.db-wal b/pb_data/data.db-wal deleted file mode 100644 index 75d972d7842059eb6931dae0d1b4d4b4ee4edb3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49472 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 delta 1023 zcmZ{iUu;uV9LLW&z2}~LPw#fh++@r^K*%%;b6tlkT_Kba6^(I|5F&1awr+Imx^-PQ zwk2x2O^O&3SdMZv5UGi>EQGjm!s?HYiTUOG z&FB37oL|n(O{eS9>AF)-l*}W9u7TP?m!_Wf;`zDYXLV&*6d-{<76oFKjvDWvNx9MO zk#0A)_PNgrxpLBIgt|V}#F-Cq^(x}y{4^8JKllZ;pgvH)Wn0v%|A{wM2pI^hmo0%( zt1Ymg631R^=L-$w8Gar6W82)}WM~u zW1YkCuF$Z%GamJ62YD@A#Hw($0_7UBz6$#lnBHX$RN)Hi*h?wu;n2f(aUXBswW1(? z6D#78SQL3)`+s3Iww7`Hq4nbH&9ub?l8@RHJ_>WxhF8w3gL9wz-pVue!n6g|9833A#I%AmVxgyES=bIF#$8l6HP7f-xTo5z# zD_$$p(;b8hx%m;ulNej<_t&ib)Zbfr0z7 zWnhc7Iq^0o#y1iVm0P*Ney4&E{y~P`DyKVvZrHQ~XvQW#&?%dmfJV%FPFzu(IArIx z1Hp@7)(f=NCitE4WAc|ji*2Z2hDvZb-3GY0iVc8Yuc8O=3meUg1}>2uDZ`pbrCe)S z3Q=VfqBF{-Qp0&(pMpk&Ce6wP5;ON)a-1_azp8(gdzjGu#8Q3l;@q`y{5^(+q%61L z7%nB2>4~co*-RE^vLusrWU|V9mNFNegNyiaW0rzc5X%{}+V3a11D34rves;z)b08C fR$XyJC67wZIIrk=sNB|%=T8*HbNLg_>c+nTjN2tE diff --git a/pb_data/logs.db-shm b/pb_data/logs.db-shm deleted file mode 100644 index cfbe788955ba131e43e481a7bfb623281f245039..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 zcmeI*NlpS$5CG6ZK@=yP5NB~pTzCc(kKl?JS8lnBI~Th35-!+z0Po-lynxZ)%7U0q zh$IjouaZjt)bFmY{|?Yyf4_(<3cp!BOV@VF`=__k&3UU``?##Uw5~p1n|ICY+H9&&nRH9>#? z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UATUUQnb;a+d%Xz|AV7e?Py|Y`G?e#v$+!!YV|(0>V15F9 z3KY^e=9XhUcH*ed4jv;gt^!jr7uDE^-8dfCBaGbKi*Yz|GZ`pPU^*(X61CWile}#; z0uwAyjQLoN&Df9A2|lHx5g@~J&yDB4T)JD>%(`;Nq z3t$s^2Lr~04yKvjNkV%h5E7ESKuF;6fD}kxNb>(@W>>OSd$p{)fsy>3@qTA!G;`

6FF?Bh&u<+p&Kg|D$6aYv3|e`bW<`^N%0?-$OrW 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�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 Date: Sat, 18 Jan 2025 08:06:01 +0530 Subject: [PATCH 3/4] language : GWM --- main.go | 18 +++++++++--------- pb_data/logs.db | Bin 770048 -> 770048 bytes 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/main.go b/main.go index 53c515c..bb036b6 100644 --- a/main.go +++ b/main.go @@ -12,7 +12,7 @@ import ( "net/mail" "os" - // "pocketbase/utils" + "pocketbase/utils" "strings" "time" @@ -411,10 +411,10 @@ func main() { 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) - // } + fRes, err := TranslateFilters(app, dataset, filterData, "value_en") + if err != nil { + log.Fatalf("Error translating filters: %v", err) + } for _, record := range records { // Extract the URL for each record @@ -442,8 +442,8 @@ func main() { log.Printf("Failed to read JSON for KPI '%s': %v", file_name, err) } - // langKey := "value_en" - // cRes := utils.ProcessChartData(chartData, languageSourceConverted, langKey) + langKey := "value_en" + cRes := utils.ProcessChartData(chartData, languageSourceConverted, langKey) // Prepare the structure with URL and its response recordResult := map[string]interface{}{ @@ -454,7 +454,7 @@ func main() { "kpi": record.GetString("kpi"), "is_chart": record.GetString("is_chart"), "chart_type": record.GetString("chart_type"), - "response": chartData, + "response": cRes, "group_by": record.GetString("group_by"), "chart_heading": record.GetString("chart_heading"), } @@ -466,7 +466,7 @@ func main() { // Create the response structure response := map[string]interface{}{ - "filter_data": filterData, + "filter_data": fRes, "data": aggregatedResponse, } diff --git a/pb_data/logs.db b/pb_data/logs.db index 51c9fcc6d0907c0c95ce4eea8f6a8405e1f842c5..3feea09f8e9c251c9d94a2c69025a617540e8891 100644 GIT binary patch delta 8657 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 From ad50544c925f5482f480d850a7e7b1d5762d0d85 Mon Sep 17 00:00:00 2001 From: Gowtham M Date: Fri, 24 Jan 2025 16:55:57 +0530 Subject: [PATCH 4/4] Kpi level filter data: GWM --- main.go | 37 +++++++++++++----- pb_data/data.db | Bin 184320 -> 192512 bytes pb_data/data.db-shm | Bin 0 -> 32768 bytes pb_data/data.db-wal | 0 pb_data/logs.db | Bin 770048 -> 770048 bytes pb_data/logs.db-shm | Bin 0 -> 32768 bytes pb_data/logs.db-wal | 0 .../64keeft2kp1d2s8/file_gN24gjKtpy.enc | Bin 0 -> 27988 bytes .../64keeft2kp1d2s8/file_gN24gjKtpy.enc.attrs | 1 + 9 files changed, 29 insertions(+), 9 deletions(-) create mode 100644 pb_data/data.db-shm create mode 100644 pb_data/data.db-wal create mode 100644 pb_data/logs.db-shm create mode 100644 pb_data/logs.db-wal create mode 100644 pb_data/storage/35g5fuzn1qgp9k7/64keeft2kp1d2s8/file_gN24gjKtpy.enc create mode 100644 pb_data/storage/35g5fuzn1qgp9k7/64keeft2kp1d2s8/file_gN24gjKtpy.enc.attrs diff --git a/main.go b/main.go index bb036b6..4750bf8 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 { @@ -408,13 +408,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 @@ -466,7 +485,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 10e94c51e18b9dbd1f2e546cb33a78f3e483f534..c7bae22376512c63c3482c2525f2bf5c8a921296 100644 GIT binary patch delta 1306 zcmah|Z)h839KQF>HMv}JeH*(iO=H>^M>|M!y}$W$Srny$GlP4lO{ zwAhYzU8gP~xd-Zg7!Bg5mpyZ4^= z_dd_@{GNCAs$+KD@u}C1>^cE5&F!T+YMxUV{(VyrBN}%tMg8r(yUhY8-(&7Qxd@7Sx$vNeU zu3Q1}w-CqrnXn{8Bqm0O`KZ437%Vi@p<%uFH#mvcp%Hy`6CAeGp;3Kn3)~?Z_w(ux z2zbcm-w(#(6lKM5a@9hvQtOQyj%_g&GGEbV!gQ+o&;e-&&g*e{N2oh&_5~g{Mi|@!qeNfsXC(;o|zQQByO z?JNPQCs^Y@)RU@<`GX2oERd9a_P$DIP;NIw#1O-V%-?1uV{if;j)r$cREI66Sf1B6}1iKPG4JD!9>WoN>VJ1Fzf;9Je-pjkT^X-!5x)2Yh)bw^hwRHenTC?Y-)S}8Nfv!Ly zl}`txfRY_aCylwb;DjF@Dhw$T6XV6<{p*YO)VHbru0Z+Rcz#d~NQwT%N?8#56aD9> zcb(iDdV!5U3)g>E;kCNcAh7zSNqDI)_X4ADU4YQ^Dslkz&8EWm! z(!Hnpj-BrFpFZ}=@jm}R4b-l#fLC$T7VXU?5Wr2Jw7W~-hBeq}b@zA{lg<`YD^0Ss zcelQI9R?b3G!K5zZ(Rd7f%eM^BnWGVb-OM4!xeboMUpZ;0J@B!%SJ*zN2vi|m3d!K z{*P5WM{^NAzTKM4NlwTNzg{j)(&@t4RH>94DQ1dcA(u`oWiD4@hd4F*42J4f&trt@ GYX1cyfN9YH delta 649 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 O`v^V`i0(U$z? delta 13349 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

bML^iU00WR9Y3jjzeZKQ_ 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 literal 0 HcmV?d00001 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=="}