diff --git a/go.work b/go.work index b3a61eca966ff63e593268cbb6f88753a902d844..f494a0605f44e3494972a70ecc156c2af7cf4205 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 914d54e070d32d07d522fbcf0b5a41659db8c2a8..04a36d40c147b246fcef4baa47fbf051d55d4444 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 0000000000000000000000000000000000000000..81aec718bfd37612e83284d49c4dfba10da54f6f --- /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 0000000000000000000000000000000000000000..61dc8dd4750ec01a3a1c6d24be603c003870ab18 --- /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 0000000000000000000000000000000000000000..fd78a9b7f8afc05cb78ae3de36cb65824491906c --- /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 b4a4fb48b7bf2fa20748d4fd1cd2b0dc2767d1ad..bb69eaff27d33619e31d4a470923584fea27b809 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 9b36343aef09d9ac4d1237c4246ca4d3c3aaffcb..6ef64c46a7aec2f55ec163ab3f62d1dcf1d5cb34 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