From 39d4921c46603e32ab275c9741ce0fa4bfaf5b93 Mon Sep 17 00:00:00 2001 From: Martin Schmollinger <martin.schmollinger@reutlingen-university.de> Date: Mon, 14 Apr 2025 13:38:02 +0200 Subject: [PATCH] Added GET List of Camapaign Resources --- src/myaktion/handler/campaign.go | 14 ++++++++++++++ src/myaktion/main.go | 1 + src/myaktion/service/campaign.go | 9 +++++++++ 3 files changed, 24 insertions(+) diff --git a/src/myaktion/handler/campaign.go b/src/myaktion/handler/campaign.go index 78e0ada..f03b909 100644 --- a/src/myaktion/handler/campaign.go +++ b/src/myaktion/handler/campaign.go @@ -28,3 +28,17 @@ func CreateCampaign(w http.ResponseWriter, r *http.Request) { http.Error(w, err.Error(), http.StatusInternalServerError) } } + +func GetCampaigns(w http.ResponseWriter, _ *http.Request) { + campaigns, err := service.GetCampaigns() + if err != nil { + log.Printf("Error calling service GetCampaigns: %v", err) + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + w.Header().Set("Content-Type", "application/json") + if err := json.NewEncoder(w).Encode(campaigns); err != nil { + log.Printf("Failure encoding value to JSON: %v", err) + http.Error(w, err.Error(), http.StatusInternalServerError) + } +} diff --git a/src/myaktion/main.go b/src/myaktion/main.go index d64e39c..32f6d85 100644 --- a/src/myaktion/main.go +++ b/src/myaktion/main.go @@ -14,6 +14,7 @@ func main() { router := mux.NewRouter() router.HandleFunc("/health", handler.Health).Methods("GET") router.HandleFunc("/campaigns", handler.CreateCampaign).Methods("POST") + router.HandleFunc("/campaigns", handler.GetCampaigns).Methods("GET") if err := http.ListenAndServe(":8000", router); err != nil { log.Fatal(err) } diff --git a/src/myaktion/service/campaign.go b/src/myaktion/service/campaign.go index 97721d8..b15144d 100644 --- a/src/myaktion/service/campaign.go +++ b/src/myaktion/service/campaign.go @@ -23,3 +23,12 @@ func CreateCampaign(campaign *model.Campaign) error { log.Printf("Stored: %v", campaign) return nil } + +func GetCampaigns() ([]model.Campaign, error) { + var campaigns []model.Campaign + for _, campaign := range campaignStore { + campaigns = append(campaigns, *campaign) + } + log.Printf("Retrieved: %v", campaigns) + return campaigns, nil +} -- GitLab