From 065e62b750c527fb5b703d13db8a5e9f9b86aac1 Mon Sep 17 00:00:00 2001 From: Gowtham M Date: Tue, 7 Jan 2025 14:05:52 +0530 Subject: [PATCH] home screen api : GWM --- main.go | 95 ++++++++++++++++++++++++++++++++++++++++++++ pb_data/data.db | Bin 143360 -> 151552 bytes pb_data/data.db-shm | Bin 32768 -> 0 bytes pb_data/data.db-wal | 0 pb_data/logs.db | Bin 770048 -> 770048 bytes pb_data/logs.db-shm | Bin 32768 -> 0 bytes pb_data/logs.db-wal | Bin 61832 -> 0 bytes 7 files changed, 95 insertions(+) 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/main.go b/main.go index 183a1fe..805e963 100644 --- a/main.go +++ b/main.go @@ -901,6 +901,101 @@ func main() { return c.JSON(http.StatusOK, aggregatedResponse) }) + 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"` + }{} + + // Execute the query + err := app.DB(). + Select("main_topic", "main_topic_list_order"). + From("home_screen"). + GroupBy("main_topic"). + 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, + "sub_topics": result2, + }) + } + + // Send the combined result as JSON + return c.JSON(http.StatusOK, result) + + }) + return nil }) diff --git a/pb_data/data.db b/pb_data/data.db index 66f27e0ef03b6ba092acd9fc0c7106d788398d49..edcd31e73ec298511c2945c4d9d1eb6c552c9232 100644 GIT binary patch delta 2764 zcma)8Pi)h66!tGk-6n0~c5N53QtCEzYZq$bzp*1_TcHIy=!Brtq#y`R;-qOEJGGsp zO<|!-JAj4&Ra!UML91d)RZC!5?p_B z=lC-i`5Wp3Y^}2Z#sJ%RvjBXcaqAv9?yP_0TJ3K9Qw1>E>AD5^phr-x_b%Ae(=p%u zw8^de=_cO0-gs~q{ONRgI-qZApWOqG-}<aJLRQj(QoH^I7#VCOw45j;76m?? zld?6i1%_+yY=JpXp3g}MO)lh8W^m9t+o9ZQG1*o*&^p=+YY(@;GDaBR5*f$=_nPBhDnU#>OU&iItF$~Fm-u#&b8xDez<@-M|b#1 zB<|J6>2UfW_hqNAj`up8#3w6oZ>Vc9cq`Orj=C=vv$-tEtL>9LQv*K7t9!E*MM^rx=gL%(n>1A zy>xO(Qy6u}0wcDm5mAc37@Cb2tOBv;Z}iO5nrP^enFrc-Ev;bDwn&7qK!8v`zHEC9wsLvB*v5UyPk z{btrTgu-wdkLU6QS6v-5iuZrk` z!lz$ck9JgsWe!ce%S-4KI?pSHBGjb*JUu(J(eL!e{JL9AUI9BVCK@I%f~Mn|f!}0h zwptb|jJTS|DXm13Ri4>_)h?u3kPO3N+%B}%9o|?!=+{|Ixnurun_6TPk6>Ynj%U(2 z$B~)2YD8mMiVw>xtfGhcZ8GmQ)e+I@R7x&N+HNQ~M$rp~bMZ-ZLf2$+qX+2i-H~0| z6H%PTXqJd)(}klmC(()OVOdf&UeeH$N-ia+lhjg}D=&*Uw^AX6;&X9c!lwnRTahsN z5Zin_#s!RU5b_7YBflU;ghL)9-yye=dHv6v{;3bX6F{oQzd73t>M>%rJI!sxY!^+J t5wop+rxCNQA8f>I`_N&;bdMfuH>t}AzTgp_aT+n(q#Um}LvEW|{{ek)6yX2> delta 288 zcmZozz}fJCV}i7x6axc;G7!Un)F~w!`?ji?Xem!#|izr^8dPdGB2F|9 diff --git a/pb_data/data.db-shm b/pb_data/data.db-shm deleted file mode 100644 index fe9ac2845eca6fe6da8a63cd096d9cf9e24ece10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 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 delta 9504 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 diff --git a/pb_data/logs.db-shm b/pb_data/logs.db-shm deleted file mode 100644 index a00c27dbc4ee4de4ae44c77423eab7cfe6ee045a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32768 zcmeI*yG;X85CzbO@tVIOLT-YkkfH~BbenL%`;wWGthzC^F5x3BM~m)-pCZSi#eeD*oLc)Y)PIG+6R z`|(qKcH{GFDL=P=FY(`P8115?=yr53x*xrY&Z6_^^7DL__k{of0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK;XX$u3Dpprm?fki~QV0+r zu+9QqJ6Pw}^KJwP5FkK+0D%<>~}oP*EVy9ufis2oNAZ YfB*pk1PBlyK!5-N0t5&UAW%u*8@S;r0RR91 diff --git a/pb_data/logs.db-wal b/pb_data/logs.db-wal deleted file mode 100644 index d446c3b5bc99cdf0b834a26730cab13db930e046..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61832 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