Add basic JSON API

This commit is contained in:
Chandler Swift 2023-10-12 22:04:26 -05:00
parent 8b0242419d
commit 4761cfbd1c
Signed by: chandlerswift
GPG key ID: A851D929D52FB93F

View file

@ -93,6 +93,23 @@ func main() {
} }
}) })
http.HandleFunc("/data.json", func(w http.ResponseWriter, r *http.Request) {
// Update servers with current data
for i, s := range config.Servers {
// TODO: Query instead (opportunistically?) to get mod lists, etc
config.Servers[i].Status, err = minequery.Ping17(s.Host, s.Port)
if err != nil {
log.Printf("Error querying server: %v", err)
}
}
msg, err := json.Marshal(config.Servers)
if err != nil {
http.Error(w, err.Error(), 500)
}
w.Header().Set("Content-Type", "application/json")
w.Write(msg)
})
// Serve backup directory // Serve backup directory
if serveBackups { // TODO: add HTML if serveBackups { // TODO: add HTML
http.Handle("/backups/", http.StripPrefix("/backups/", http.FileServer(http.Dir(config.BackupDir)))) http.Handle("/backups/", http.StripPrefix("/backups/", http.FileServer(http.Dir(config.BackupDir))))