diff --git a/go.mod b/go.mod new file mode 100644 index 0000000000000000000000000000000000000000..b0dc191670b63b8815e9b19e72c4cd560704573e --- /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 0000000000000000000000000000000000000000..535028803d222b0e4e9174f56529c0ed9fece4e0 --- /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 0000000000000000000000000000000000000000..1f2f41b393c63ff5d743fbaa5ab9f0f691e9260f --- /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 0000000000000000000000000000000000000000..bb62dc721e584bf5bd0959ed81692ba935a289e5 --- /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 89490cd87acfb8fb3175676c894480818b6a9e71..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..d2e74b4cdd30b686069fcdf3bb5de02e6c677189 --- /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 0000000000000000000000000000000000000000..233c9c104e172c06cc9f185507c4f7a652f55e0b --- /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 0000000000000000000000000000000000000000..e452f9660ca77d5a1107136ee53cdd2c320c173b --- /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" +)