mirror of
https://codeberg.org/PLG-Development/PLG-MuDiCS
synced 2026-07-06 00:47:09 +00:00
+28
-5
@@ -1,6 +1,7 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"log/slog"
|
||||
"net"
|
||||
"net/http"
|
||||
@@ -83,18 +84,40 @@ func pingRoute(ctx echo.Context) error {
|
||||
return ctx.JSON(http.StatusOK, PingResponse{Status: "host_offline"})
|
||||
}
|
||||
|
||||
conn, err := net.DialTimeout("tcp", ip+":1323", 5*time.Second)
|
||||
client := http.Client{
|
||||
Timeout: 5 * time.Second,
|
||||
}
|
||||
|
||||
resp, err := client.Get("http://" + ip + ":1323/api/ping")
|
||||
if err != nil {
|
||||
return ctx.JSON(http.StatusOK, PingResponse{Status: "app_offline"})
|
||||
}
|
||||
conn.Close()
|
||||
defer resp.Body.Close()
|
||||
if resp.StatusCode != http.StatusOK {
|
||||
return ctx.JSON(http.StatusOK, PingResponse{Status: "app_offline"})
|
||||
}
|
||||
|
||||
return ctx.JSON(http.StatusOK, PingResponse{Status: "app_online"})
|
||||
var appPing AppPingResponse
|
||||
if err := json.NewDecoder(resp.Body).Decode(&appPing); err != nil {
|
||||
return ctx.JSON(http.StatusOK, PingResponse{
|
||||
Status: "app_offline",
|
||||
})
|
||||
}
|
||||
|
||||
return ctx.JSON(http.StatusOK, PingResponse{
|
||||
Status: "app_online",
|
||||
Version: appPing.Version,
|
||||
})
|
||||
}
|
||||
|
||||
type AppPingResponse struct {
|
||||
Version string `json:"version"`
|
||||
}
|
||||
|
||||
type PingResponse struct {
|
||||
Status string `json:"status"`
|
||||
Error string `json:"error"`
|
||||
Status string `json:"status"`
|
||||
Version string `json:"version"`
|
||||
Error string `json:"error"`
|
||||
}
|
||||
|
||||
type WakeOnLanRequest struct {
|
||||
|
||||
Reference in New Issue
Block a user