From 388ff05f72225743cd1349a628ff152b2c8144a5 Mon Sep 17 00:00:00 2001
From: Flnal <74874325+Flnal@users.noreply.github.com>
Date: Mon, 17 Apr 2023 15:11:27 +0200
Subject: [PATCH] added files

---
 go.mod                         |  5 +++++
 go.sum                         |  2 ++
 main/main.go                   | 20 ++++++++++++++++++++
 src/myaktion/handler/health.go | 11 +++++++++++
 src/myaktion/main.go           |  7 -------
 src/myaktion/model/account.go  |  7 +++++++
 src/myaktion/model/campaign.go | 11 +++++++++++
 src/myaktion/model/donation.go | 16 ++++++++++++++++
 8 files changed, 72 insertions(+), 7 deletions(-)
 create mode 100644 go.mod
 create mode 100644 go.sum
 create mode 100644 main/main.go
 create mode 100644 src/myaktion/handler/health.go
 delete mode 100644 src/myaktion/main.go
 create mode 100644 src/myaktion/model/account.go
 create mode 100644 src/myaktion/model/campaign.go
 create mode 100644 src/myaktion/model/donation.go

diff --git a/go.mod b/go.mod
new file mode 100644
index 0000000..b0dc191
--- /dev/null
+++ b/go.mod
@@ -0,0 +1,5 @@
+module gitlab.reutlingen-university.de/albrecht/myaktion-go
+
+go 1.20
+
+require github.com/gorilla/mux v1.8.0
diff --git a/go.sum b/go.sum
new file mode 100644
index 0000000..5350288
--- /dev/null
+++ b/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/main/main.go b/main/main.go
new file mode 100644
index 0000000..1f2f41b
--- /dev/null
+++ b/main/main.go
@@ -0,0 +1,20 @@
+package main
+
+import (
+	"log"
+	"net/http"
+
+	"github.com/gorilla/mux"
+	"gitlab.reutlingen-university.de/albrecht/myaktion-go/src/myaktion/handler"
+)
+
+//"gitlab.reutlingen-university.de/albrecht/myaktion-go/src/myaktion/model"
+
+func main() {
+	log.Println("Starting My-Aktion API server")
+	router := mux.NewRouter()
+	router.HandleFunc("/health", handler.Health).Methods("GET")
+	if err := http.ListenAndServe(":8000", router); err != nil {
+		log.Fatal(err)
+	}
+}
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
deleted file mode 100644
index 89490cd..0000000
--- a/src/myaktion/main.go
+++ /dev/null
@@ -1,7 +0,0 @@
-package main
-
-import "fmt"
-
-func main() {
-	fmt.Println("test")
-}
diff --git a/src/myaktion/model/account.go b/src/myaktion/model/account.go
new file mode 100644
index 0000000..d2e74b4
--- /dev/null
+++ b/src/myaktion/model/account.go
@@ -0,0 +1,7 @@
+package model
+
+type Account struct {
+	Name     string
+	BankName string
+	Number   string
+}
diff --git a/src/myaktion/model/campaign.go b/src/myaktion/model/campaign.go
new file mode 100644
index 0000000..233c9c1
--- /dev/null
+++ b/src/myaktion/model/campaign.go
@@ -0,0 +1,11 @@
+package model
+
+type Camaign struct {
+	Name               string
+	OrganizerName      string
+	TargetAmount       float64
+	DonationMinimum    float64
+	AmountDonatedSoFar float64
+	Donations          []Donation
+	Account            Account
+}
diff --git a/src/myaktion/model/donation.go b/src/myaktion/model/donation.go
new file mode 100644
index 0000000..e452f96
--- /dev/null
+++ b/src/myaktion/model/donation.go
@@ -0,0 +1,16 @@
+package model
+
+type Donation struct {
+	Amount           float64
+	DonorName        string
+	ReceiptRequested bool
+	Account          Account
+	Status           Status
+}
+
+type Status string
+
+const (
+	Transferred Status = "Transferred"
+	In_Process  Status = "In_Process"
+)
-- 
GitLab