Skip to content
Snippets Groups Projects
Select Git revision
  • b120f98368c2b975691da74e71856f840b1a2c37
  • main default protected
2 results

server.py

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    main.go 1.30 KiB
    package main
    
    import (
    	"fmt"
    	"os"
    
    	log "github.com/sirupsen/logrus"
    
    	"net/http"
    
    	"github.com/gorilla/mux"
    	"gitlab.reutlingen-university.de/go-exercises/myaktion-go/src/myaktion/db"
    	"gitlab.reutlingen-university.de/go-exercises/myaktion-go/src/myaktion/handler"
    )
    
    func init() {
    	//ensure that logger is initialized before connecting to DB
    	defer db.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() {
    	fmt.Println("Starting MyAktion API server")
    	router := mux.NewRouter()
    	router.HandleFunc("/health", handler.Health).Methods("GET")
    	router.HandleFunc("/campaign", handler.CreateCampaign).Methods("POST")
    	router.HandleFunc("/campaigns", handler.GetCampaigns).Methods("GET")
    	router.HandleFunc("/campaigns/{id}", handler.GetCampaign).Methods("GET")
    	router.HandleFunc("/campaigns/{id}", handler.UpdateCampaign).Methods("PUT")
    	router.HandleFunc("/campaigns/{id}", handler.DeleteCampaign).Methods("DELETE")
    	router.HandleFunc("/campaigns/{id}/donation", handler.AddDonation).Methods("POST")
    	if err := http.ListenAndServe(":8000", router); err != nil {
    		log.Fatal(err)
    	}
    }