From ebd9e3d4a976cbdfd14342235dbb6d2416cbd625 Mon Sep 17 00:00:00 2001 From: rodley82 Date: Tue, 1 Feb 2022 09:43:47 -0300 Subject: [PATCH] Corregido redirect response y ahora responde not found para requests que no son exactamente para el index --- main.go | 39 ++++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/main.go b/main.go index fd2e786..18d96c4 100644 --- a/main.go +++ b/main.go @@ -1,6 +1,7 @@ package main import ( + "encoding/json" "fmt" "html/template" "net/http" @@ -23,17 +24,29 @@ func loadTemplates() { } } -func indexHandler(writer http.ResponseWriter, request *http.Request) { - proliantIsAlive := pingServer("server.rodley.net") - oracleIsAlive := oracleServerUp() +func indexHandler(w http.ResponseWriter, request *http.Request) { + if request.URL.Path == "/" { + proliantIsAlive := pingServer("server.rodley.net") + oracleIsAlive := oracleServerUp() - statuses := struct { - ProliantIsAlive bool - OracleIsAlive bool - }{ProliantIsAlive: proliantIsAlive, OracleIsAlive: oracleIsAlive} + statuses := struct { + ProliantIsAlive bool + OracleIsAlive bool + }{ProliantIsAlive: proliantIsAlive, OracleIsAlive: oracleIsAlive} - fmt.Println("Statuses:", statuses) - templates["index"].Execute(writer, statuses) + fmt.Println("Statuses:", statuses) + templates["index"].Execute(w, statuses) + } else { + w.WriteHeader(http.StatusNotFound) + w.Header().Set("Content-Type", "application/json") + resp := make(map[string]string) + resp["message"] = "Resource Not Found" + jsonResp, err := json.Marshal(resp) + if err != nil { + fmt.Println("Error happened in JSON marshal", err) + } + w.Write(jsonResp) + } } func pingServer(serverName string) bool { @@ -94,10 +107,10 @@ func powerOnOracleHandler(writer http.ResponseWriter, request *http.Request) { result := powerOnOracle() if result == true { time.Sleep(10 * time.Second) - http.Redirect(writer, request, "/", 301) + http.Redirect(writer, request, "/", 302) } else { // TODO: Ver como render el error - http.Redirect(writer, request, "/", 301) + http.Redirect(writer, request, "/", 302) } } @@ -105,10 +118,10 @@ func powerOffOracleHandler(writer http.ResponseWriter, request *http.Request) { result := powerOffOracle() if result == true { time.Sleep(10 * time.Second) - http.Redirect(writer, request, "/", 301) + http.Redirect(writer, request, "/", 302) } else { // TODO: Ver como render el error - http.Redirect(writer, request, "/", 301) + http.Redirect(writer, request, "/", 302) } }