From d90c351346156b62543992f8211f565d17d25699 Mon Sep 17 00:00:00 2001
From: Yege1893 <yannick.ege@web.de>
Date: Tue, 13 Jun 2023 18:20:32 +0200
Subject: [PATCH] setup, models

---
 go.work                                   |  2 ++
 src/highlanderticketing/go.mod            | 10 +++++++
 src/highlanderticketing/go.sum            | 24 ++++++++++++++++
 src/highlanderticketing/handler/health.go | 14 +++++++++
 src/highlanderticketing/main.go           | 35 +++++++++++++++++++++++
 src/highlanderticketing/model/order.go    |  2 +-
 src/highlanderticketing/model/travel.go   |  3 ++
 7 files changed, 89 insertions(+), 1 deletion(-)
 create mode 100644 src/highlanderticketing/go.sum
 create mode 100644 src/highlanderticketing/handler/health.go
 create mode 100644 src/highlanderticketing/main.go

diff --git a/go.work b/go.work
index b3a61ec..f494a06 100644
--- a/go.work
+++ b/go.work
@@ -1 +1,3 @@
 go 1.20
+
+use ./src/highlanderticketing
diff --git a/src/highlanderticketing/go.mod b/src/highlanderticketing/go.mod
index 914d54e..04a36d4 100644
--- a/src/highlanderticketing/go.mod
+++ b/src/highlanderticketing/go.mod
@@ -1,3 +1,13 @@
 module gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/highlanderticketing
 
 go 1.20
+
+require google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc
+
+require golang.org/x/sys v0.6.0 // indirect
+
+require (
+	github.com/gorilla/mux v1.8.0
+	github.com/sirupsen/logrus v1.9.3
+	google.golang.org/protobuf v1.30.0 // indirect
+)
diff --git a/src/highlanderticketing/go.sum b/src/highlanderticketing/go.sum
new file mode 100644
index 0000000..81aec71
--- /dev/null
+++ b/src/highlanderticketing/go.sum
@@ -0,0 +1,24 @@
+github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
+github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
+github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
+github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
+github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
+github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
+github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ=
+golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
+golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc h1:8DyZCyvI8mE1IdLy/60bS+52xfymkE72wv1asokgtao=
+google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:xZnkP7mREFX5MORlOPEzLMr+90PPZQ2QWzrVTWfAq64=
+google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
+google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng=
+google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
diff --git a/src/highlanderticketing/handler/health.go b/src/highlanderticketing/handler/health.go
new file mode 100644
index 0000000..61dc8dd
--- /dev/null
+++ b/src/highlanderticketing/handler/health.go
@@ -0,0 +1,14 @@
+package handler
+
+import (
+	"io"
+	"net/http"
+
+	log "github.com/sirupsen/logrus"
+)
+
+func Health(w http.ResponseWriter, r *http.Request) {
+	w.Header().Set("Content-Type", "application/json")
+	log.Infof("healthy")
+	io.WriteString(w, `{"alive": true}`)
+}
diff --git a/src/highlanderticketing/main.go b/src/highlanderticketing/main.go
new file mode 100644
index 0000000..fd78a9b
--- /dev/null
+++ b/src/highlanderticketing/main.go
@@ -0,0 +1,35 @@
+package main
+
+import (
+	"net/http"
+	"os"
+
+	"github.com/gorilla/mux"
+	log "github.com/sirupsen/logrus"
+	"gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/highlanderticketing/handler"
+)
+
+func main() {
+	router := mux.NewRouter()
+	router.HandleFunc("/health", handler.Health).Methods("GET")
+	if err := http.ListenAndServe(":8000", router); err != nil {
+		log.Fatal(err)
+	}
+
+}
+
+func init() {
+	// init logger
+	log.SetFormatter(&log.TextFormatter{})
+	log.SetReportCaller(true)
+
+	os.Setenv("LOG_LEVEL", "INFO")
+
+	level, err := log.ParseLevel(os.Getenv("LOG_LEVEL"))
+	if err != nil {
+		log.Info("Log level not specified, set default to: INFO")
+		log.SetLevel(log.InfoLevel)
+		return
+	}
+	log.SetLevel(level)
+}
diff --git a/src/highlanderticketing/model/order.go b/src/highlanderticketing/model/order.go
index b4a4fb4..bb69eaf 100644
--- a/src/highlanderticketing/model/order.go
+++ b/src/highlanderticketing/model/order.go
@@ -9,5 +9,5 @@ type OrderType string
 
 const (
 	MATCHTICKET OrderType = "MATCHTICKET"
-	BUSTICKET   OrderType = "BUSTICKET"
+	BUSTICKET   OrderType = "TRAVELTICKET"
 )
diff --git a/src/highlanderticketing/model/travel.go b/src/highlanderticketing/model/travel.go
index 9b36343..6ef64c4 100644
--- a/src/highlanderticketing/model/travel.go
+++ b/src/highlanderticketing/model/travel.go
@@ -22,3 +22,6 @@ const (
 	BUS   TravelType = "BUS"
 	PLANE TravelType = "PLANE"
 )
+
+// Funktion ins Modell (siehe
+//Myaktion), welche den available_ Ticket_Amount berechnet
-- 
GitLab