feat: add hostname management and improve error handling

This commit is contained in:
2025-05-03 22:41:21 +02:00
parent 65846a33c0
commit e62bbf8ca3
5 changed files with 121 additions and 3 deletions

View File

@@ -76,3 +76,35 @@ func HandleNetworkRemove(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK)
}
func HandleGetHostname(w http.ResponseWriter, r *http.Request) {
hostname, err := network.GetHostname()
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
w.Write([]byte(hostname))
}
func HandleSetHostname(w http.ResponseWriter, r *http.Request) {
if r.Method != http.MethodPost {
http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
return
}
var req struct {
Hostname string `json:"hostname"`
}
if err := json.NewDecoder(r.Body).Decode(&req); err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
if err := network.SetHostname(req.Hostname); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
w.WriteHeader(http.StatusOK)
}

View File

@@ -43,6 +43,8 @@ func (s *Server) RegisterRoutes() {
s.router.HandleFunc("/network/up", HandleNetworkUp).Methods(http.MethodPost)
s.router.HandleFunc("/network/down", HandleNetworkDown).Methods(http.MethodPost)
s.router.HandleFunc("/network/remove", HandleNetworkRemove).Methods(http.MethodPost)
s.router.HandleFunc("/hostname", HandleGetHostname).Methods(http.MethodGet)
s.router.HandleFunc("/hostname", HandleSetHostname).Methods(http.MethodPost)
}
func (s *Server) healthHandler(w http.ResponseWriter, r *http.Request) {