64 lines
1.3 KiB
Go
64 lines
1.3 KiB
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"encoding/json"
|
||
|
"log"
|
||
|
"net/http"
|
||
|
|
||
|
"github.com/gorilla/mux"
|
||
|
)
|
||
|
|
||
|
type APIServer struct {
|
||
|
Host string
|
||
|
Port string
|
||
|
}
|
||
|
|
||
|
type APIError struct {
|
||
|
Error string
|
||
|
}
|
||
|
|
||
|
func WriteJSON(w http.ResponseWriter, status int, v any) error {
|
||
|
w.Header().Set("Content-Type", "application/json")
|
||
|
w.WriteHeader(status)
|
||
|
return json.NewEncoder(w).Encode(v)
|
||
|
}
|
||
|
|
||
|
func NewAPIServer(cfg Config) *APIServer {
|
||
|
return &APIServer{
|
||
|
Host: cfg.Host,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func (s *APIServer) Start() {
|
||
|
router := mux.NewRouter()
|
||
|
router.HandleFunc("/prerace", s.handleCreatePreRace).Methods("POST")
|
||
|
router.HandleFunc("/preraces", s.handleGetPreRaces).Methods("GET")
|
||
|
router.HandleFunc("prerace", s.handleDeletePreRace).Methods("DELETE")
|
||
|
router.HandleFunc("prerace", s.handleUpdatePreRace).Methods("PUT")
|
||
|
|
||
|
log.Println("Listening for new Preraces / Races")
|
||
|
|
||
|
http.ListenAndServe(s.Host, router)
|
||
|
|
||
|
}
|
||
|
|
||
|
func (s *APIServer) handleGetPreRaceByID(w http.ResponseWriter, r *http.Request) {
|
||
|
|
||
|
}
|
||
|
|
||
|
func (s *APIServer) handleGetPreRaces(w http.ResponseWriter, r *http.Request) {
|
||
|
|
||
|
}
|
||
|
|
||
|
func (s *APIServer) handleCreatePreRace(w http.ResponseWriter, r *http.Request) {
|
||
|
|
||
|
}
|
||
|
|
||
|
func (s *APIServer) handleDeletePreRace(w http.ResponseWriter, r *http.Request) {
|
||
|
|
||
|
}
|
||
|
|
||
|
func (s *APIServer) handleUpdatePreRace(w http.ResponseWriter, r *http.Request) {
|
||
|
|
||
|
}
|