Skip to content
Snippets Groups Projects
Commit c3a4cab3 authored by Sercan Yesildal's avatar Sercan Yesildal
Browse files

logger and campaign list service added

parent 6db3aad8
No related branches found
No related tags found
No related merge requests found
...@@ -2,4 +2,9 @@ module gitlab.reutlingen-university.de/yesildas/myaktion-go/src/myaktion ...@@ -2,4 +2,9 @@ module gitlab.reutlingen-university.de/yesildas/myaktion-go/src/myaktion
go 1.20 go 1.20
require github.com/gorilla/mux v1.8.0 require (
github.com/gorilla/mux v1.8.0
github.com/sirupsen/logrus v1.9.0
)
require golang.org/x/sys v0.7.0 // indirect
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0=
github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
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.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU=
golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
...@@ -9,6 +9,20 @@ import ( ...@@ -9,6 +9,20 @@ import (
"gitlab.reutlingen-university.de/yesildas/myaktion-go/src/myaktion/service" "gitlab.reutlingen-university.de/yesildas/myaktion-go/src/myaktion/service"
) )
func GetCampaigns(w http.ResponseWriter, _ *http.Request) {
campaigns, err := service.GetCampaigns()
if err != nil {
log.Printf("Error calling service GetCampaigns: %v", err)
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
w.Header().Set("Content-Type", "application/json")
if err := json.NewEncoder(w).Encode(campaigns); err != nil {
log.Printf("Failure encoding value to JSON: %v", err)
http.Error(w, err.Error(), http.StatusInternalServerError)
}
}
func CreateCampaign(w http.ResponseWriter, r *http.Request) { func CreateCampaign(w http.ResponseWriter, r *http.Request) {
var campaign model.Campaign var campaign model.Campaign
err := json.NewDecoder(r.Body).Decode(&campaign) err := json.NewDecoder(r.Body).Decode(&campaign)
......
...@@ -2,14 +2,28 @@ package main ...@@ -2,14 +2,28 @@ package main
import ( import (
"fmt" "fmt"
"log"
"net/http" "net/http"
"os"
"github.com/gorilla/mux" "github.com/gorilla/mux"
log "github.com/sirupsen/logrus"
"gitlab.reutlingen-university.de/yesildas/myaktion-go/src/myaktion/handler" "gitlab.reutlingen-university.de/yesildas/myaktion-go/src/myaktion/handler"
"gitlab.reutlingen-university.de/yesildas/myaktion-go/src/myaktion/model" "gitlab.reutlingen-university.de/yesildas/myaktion-go/src/myaktion/model"
) )
func init() {
// init logger
log.SetFormatter(&log.TextFormatter{})
log.SetReportCaller(true)
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)
}
func main() { func main() {
campaign := model.Campaign{ campaign := model.Campaign{
Name: "Spenden für eine bessere Note", Name: "Spenden für eine bessere Note",
...@@ -40,6 +54,7 @@ func main() { ...@@ -40,6 +54,7 @@ func main() {
log.Printf("Starting MyAktion API server on port %v.\n", port) log.Printf("Starting MyAktion API server on port %v.\n", port)
router := mux.NewRouter() router := mux.NewRouter()
router.HandleFunc("/health", handler.Health).Methods("GET") router.HandleFunc("/health", handler.Health).Methods("GET")
router.HandleFunc("/campaigns", handler.GetCampaigns).Methods("GET")
router.HandleFunc("/campaign", handler.CreateCampaign).Methods("POST") router.HandleFunc("/campaign", handler.CreateCampaign).Methods("POST")
if err := http.ListenAndServe(fmt.Sprintf(":%v", port), router); err != nil { if err := http.ListenAndServe(fmt.Sprintf(":%v", port), router); err != nil {
log.Fatal(err) log.Fatal(err)
......
...@@ -15,6 +15,16 @@ func init() { ...@@ -15,6 +15,16 @@ func init() {
campaignStore = make(map[uint]*model.Campaign) campaignStore = make(map[uint]*model.Campaign)
} }
func GetCampaigns() ([]model.Campaign, error) {
var campaigns []model.Campaign
for _, campaign := range campaignStore {
campaigns = append(campaigns, *campaign)
}
log.Printf("Retrieved: %v", campaigns)
return campaigns, nil
}
func CreateCampaign(campaign *model.Campaign) error { func CreateCampaign(campaign *model.Campaign) error {
campaign.ID = actCampaignId campaign.ID = actCampaignId
campaignStore[actCampaignId] = campaign campaignStore[actCampaignId] = campaign
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment