From 25eef452dd43298730faab3528f9179978dcc392 Mon Sep 17 00:00:00 2001
From: Martin Schmollinger <martin.schmollinger@reutlingen-university.de>
Date: Mon, 17 Apr 2023 15:11:10 +0200
Subject: [PATCH] Added health service

---
 src/myaktion/go.mod            |  2 ++
 src/myaktion/go.sum            |  2 ++
 src/myaktion/handler/health.go | 11 +++++++++++
 src/myaktion/main.go           | 33 +++++++++------------------------
 4 files changed, 24 insertions(+), 24 deletions(-)
 create mode 100644 src/myaktion/go.sum
 create mode 100644 src/myaktion/handler/health.go

diff --git a/src/myaktion/go.mod b/src/myaktion/go.mod
index db0e150..7269261 100644
--- a/src/myaktion/go.mod
+++ b/src/myaktion/go.mod
@@ -1,3 +1,5 @@
 module gitlab.reutlingen-university.de/go-exercises/myaktion-go/src/myaktion
 
 go 1.20
+
+require github.com/gorilla/mux v1.8.0
diff --git a/src/myaktion/go.sum b/src/myaktion/go.sum
new file mode 100644
index 0000000..5350288
--- /dev/null
+++ b/src/myaktion/go.sum
@@ -0,0 +1,2 @@
+github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
+github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
diff --git a/src/myaktion/handler/health.go b/src/myaktion/handler/health.go
new file mode 100644
index 0000000..bb62dc7
--- /dev/null
+++ b/src/myaktion/handler/health.go
@@ -0,0 +1,11 @@
+package handler
+
+import (
+	"io"
+	"net/http"
+)
+
+func Health(w http.ResponseWriter, r *http.Request) {
+	w.Header().Set("Content-Type", "application/json")
+	io.WriteString(w, `{"alive": true}`)
+}
diff --git a/src/myaktion/main.go b/src/myaktion/main.go
index 3996468..e75ad89 100644
--- a/src/myaktion/main.go
+++ b/src/myaktion/main.go
@@ -2,33 +2,18 @@ package main
 
 import (
 	"fmt"
+	"log"
+	"net/http"
 
-	"gitlab.reutlingen-university.de/go-exercises/myaktion-go/src/myaktion/model"
+	"github.com/gorilla/mux"
+	"gitlab.reutlingen-university.de/go-exercises/myaktion-go/src/myaktion/handler"
 )
 
 func main() {
-	c := model.Campaign{
-		Name:            "Kinder helfen",
-		OrganizerName:   "Hans Schmidt",
-		TargetAmount:    10000.0,
-		DonationMinimum: 10.0,
-		Account: model.Account{
-			Name:     "Kinder helfen",
-			BankName: "Raiffeisen",
-			Number:   "1234567890",
-		},
+	fmt.Println("Starting MyAktion API server")
+	router := mux.NewRouter()
+	router.HandleFunc("/health", handler.Health).Methods("GET")
+	if err := http.ListenAndServe(":8000", router); err != nil {
+		log.Fatal(err)
 	}
-	c.Donations = append(c.Donations, model.Donation{
-		Amount:           100.0,
-		DonorName:        "Hans Muster",
-		ReceiptRequested: true,
-		Status:           model.IN_PROCESS,
-		Account: model.Account{
-			Name:     "Hans Muster",
-			BankName: "Raiffeisen",
-			Number:   "1234567890",
-		},
-	})
-	fmt.Printf("%+v\n", c)
-
 }
-- 
GitLab