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) { }