From fac334566881d43dc76881e855df29e8c9e11faf Mon Sep 17 00:00:00 2001 From: John McCabe <john@johnmccabe.net> Date: Wed, 21 Mar 2018 14:05:55 +0000 Subject: [PATCH] Use http package consts for http methods This commit replaces occurences of http method strings with the corresponding consts from the http package. *Note* UPDATE is not strictly speaking a valid method and as such isn't part of the http package (should be a PUT or PATCH?) Signed-off-by: John McCabe <john@johnmccabe.net> --- gateway/handlers/cors.go | 2 +- gateway/server.go | 20 ++++++++++---------- gateway/tests/cors_test.go | 4 ++-- watchdog/main.go | 10 +++++----- watchdog/requesthandler_test.go | 24 ++++++++++++------------ 5 files changed, 30 insertions(+), 30 deletions(-) diff --git a/gateway/handlers/cors.go b/gateway/handlers/cors.go index 5c1bfbbe..29b1c3a3 100644 --- a/gateway/handlers/cors.go +++ b/gateway/handlers/cors.go @@ -11,7 +11,7 @@ type CORSHandler struct { func (c CORSHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { // https://raw.githubusercontent.com/openfaas/store/master/store.json w.Header().Set("Access-Control-Allow-Headers", "Content-Type") - w.Header().Set("Access-Control-Allow-Methods", "GET") + w.Header().Set("Access-Control-Allow-Methods", http.MethodGet) w.Header().Set("Access-Control-Allow-Origin", c.AllowedHost) (*c.Upstream).ServeHTTP(w, r) diff --git a/gateway/server.go b/gateway/server.go index 112dac98..15b2ad0a 100644 --- a/gateway/server.go +++ b/gateway/server.go @@ -94,15 +94,15 @@ func main() { r.HandleFunc("/system/alert", faasHandlers.Alert) - r.HandleFunc("/system/function/{name:[-a-zA-Z_0-9]+}", queryFunction).Methods("GET") - r.HandleFunc("/system/functions", listFunctions).Methods("GET") - r.HandleFunc("/system/functions", faasHandlers.DeployFunction).Methods("POST") - r.HandleFunc("/system/functions", faasHandlers.DeleteFunction).Methods("DELETE") - r.HandleFunc("/system/functions", faasHandlers.UpdateFunction).Methods("PUT") + r.HandleFunc("/system/function/{name:[-a-zA-Z_0-9]+}", queryFunction).Methods(http.MethodGet) + r.HandleFunc("/system/functions", listFunctions).Methods(http.MethodGet) + r.HandleFunc("/system/functions", faasHandlers.DeployFunction).Methods(http.MethodPost) + r.HandleFunc("/system/functions", faasHandlers.DeleteFunction).Methods(http.MethodDelete) + r.HandleFunc("/system/functions", faasHandlers.UpdateFunction).Methods(http.MethodPut) if faasHandlers.QueuedProxy != nil { - r.HandleFunc("/async-function/{name:[-a-zA-Z_0-9]+}/", faasHandlers.QueuedProxy).Methods("POST") - r.HandleFunc("/async-function/{name:[-a-zA-Z_0-9]+}", faasHandlers.QueuedProxy).Methods("POST") + r.HandleFunc("/async-function/{name:[-a-zA-Z_0-9]+}/", faasHandlers.QueuedProxy).Methods(http.MethodPost) + r.HandleFunc("/async-function/{name:[-a-zA-Z_0-9]+}", faasHandlers.QueuedProxy).Methods(http.MethodPost) r.HandleFunc("/system/async-report", faasHandlers.AsyncReport) } @@ -113,13 +113,13 @@ func main() { allowedCORSHost := "raw.githubusercontent.com" fsCORS := handlers.DecorateWithCORS(fs, allowedCORSHost) - r.PathPrefix("/ui/").Handler(http.StripPrefix("/ui", fsCORS)).Methods("GET") + r.PathPrefix("/ui/").Handler(http.StripPrefix("/ui", fsCORS)).Methods(http.MethodGet) - r.HandleFunc("/", faasHandlers.RoutelessProxy).Methods("POST") + r.HandleFunc("/", faasHandlers.RoutelessProxy).Methods(http.MethodPost) metricsHandler := metrics.PrometheusHandler() r.Handle("/metrics", metricsHandler) - r.Handle("/", http.RedirectHandler("/ui/", http.StatusMovedPermanently)).Methods("GET") + r.Handle("/", http.RedirectHandler("/ui/", http.StatusMovedPermanently)).Methods(http.MethodGet) tcpPort := 8080 diff --git a/gateway/tests/cors_test.go b/gateway/tests/cors_test.go index e2765eb2..43aa113b 100644 --- a/gateway/tests/cors_test.go +++ b/gateway/tests/cors_test.go @@ -29,8 +29,8 @@ func Test_HeadersAdded(t *testing.T) { } actualMethods := rr.Header().Get("Access-Control-Allow-Methods") - if actualMethods != "GET" { - t.Errorf("Access-Control-Allow-Methods: want: %s got: %s", "GET", actualMethods) + if actualMethods != http.MethodGet { + t.Errorf("Access-Control-Allow-Methods: want: %s got: %s", http.MethodGet, actualMethods) } } diff --git a/watchdog/main.go b/watchdog/main.go index 56ee03b6..adcd9b57 100644 --- a/watchdog/main.go +++ b/watchdog/main.go @@ -277,7 +277,7 @@ func removeLockFile() error { func makeHealthHandler() func(http.ResponseWriter, *http.Request) { return func(w http.ResponseWriter, r *http.Request) { switch r.Method { - case "GET": + case http.MethodGet: if lockFilePresent() == false { w.WriteHeader(http.StatusInternalServerError) return @@ -298,11 +298,11 @@ func makeRequestHandler(config *WatchdogConfig) func(http.ResponseWriter, *http. return func(w http.ResponseWriter, r *http.Request) { switch r.Method { case - "POST", - "PUT", - "DELETE", + http.MethodPost, + http.MethodPut, + http.MethodDelete, "UPDATE", - "GET": + http.MethodGet: pipeRequest(config, w, r, r.Method) break default: diff --git a/watchdog/requesthandler_test.go b/watchdog/requesthandler_test.go index 3348c3db..d4a9766d 100644 --- a/watchdog/requesthandler_test.go +++ b/watchdog/requesthandler_test.go @@ -29,7 +29,7 @@ func TestHandler_HasCustomHeaderInFunction_WithCgi_Mode(t *testing.T) { rr := httptest.NewRecorder() body := "" - req, err := http.NewRequest("POST", "/", bytes.NewBufferString(body)) + req, err := http.NewRequest(http.MethodPost, "/", bytes.NewBufferString(body)) req.Header.Add("custom-header", "value") if err != nil { @@ -68,7 +68,7 @@ func TestHandler_HasCustomHeaderInFunction_WithCgiMode_AndBody(t *testing.T) { rr := httptest.NewRecorder() body := "test" - req, err := http.NewRequest("POST", "/", bytes.NewBufferString(body)) + req, err := http.NewRequest(http.MethodPost, "/", bytes.NewBufferString(body)) req.Header.Add("custom-header", "value") if err != nil { @@ -110,7 +110,7 @@ func TestHandler_StderrWritesToStderr_CombinedOutput_False(t *testing.T) { log.SetOutput(b) body := "" - req, err := http.NewRequest("POST", "/", bytes.NewBufferString(body)) + req, err := http.NewRequest(http.MethodPost, "/", bytes.NewBufferString(body)) if err != nil { t.Fatal(err) @@ -151,7 +151,7 @@ func TestHandler_StderrWritesToResponse_CombinedOutput_True(t *testing.T) { log.SetOutput(b) body := "" - req, err := http.NewRequest("POST", "/", bytes.NewBufferString(body)) + req, err := http.NewRequest(http.MethodPost, "/", bytes.NewBufferString(body)) if err != nil { t.Fatal(err) @@ -200,7 +200,7 @@ func TestHandler_DoesntHaveCustomHeaderInFunction_WithoutCgi_Mode(t *testing.T) rr := httptest.NewRecorder() body := "" - req, err := http.NewRequest("POST", "/", bytes.NewBufferString(body)) + req, err := http.NewRequest(http.MethodPost, "/", bytes.NewBufferString(body)) req.Header.Add("custom-header", "value") if err != nil { t.Fatal(err) @@ -236,7 +236,7 @@ func TestHandler_HasXDurationSecondsHeader(t *testing.T) { rr := httptest.NewRecorder() body := "hello" - req, err := http.NewRequest("POST", "/", bytes.NewBufferString(body)) + req, err := http.NewRequest(http.MethodPost, "/", bytes.NewBufferString(body)) if err != nil { t.Fatal(err) } @@ -262,7 +262,7 @@ func TestHandler_HasXDurationSecondsHeader(t *testing.T) { func TestHandler_RequestTimeoutFailsForExceededDuration(t *testing.T) { rr := httptest.NewRecorder() - verbs := []string{"POST"} + verbs := []string{http.MethodPost} for _, verb := range verbs { body := "hello" @@ -290,7 +290,7 @@ func TestHandler_RequestTimeoutFailsForExceededDuration(t *testing.T) { func TestHandler_StatusOKAllowed_ForWriteableVerbs(t *testing.T) { rr := httptest.NewRecorder() - verbs := []string{"POST", "PUT", "UPDATE", "DELETE"} + verbs := []string{http.MethodPost, http.MethodPut, "UPDATE", http.MethodDelete} for _, verb := range verbs { body := "hello" @@ -341,7 +341,7 @@ func TestHandler_StatusMethodNotAllowed_ForUnknown(t *testing.T) { func TestHandler_StatusOKForGETAndNoBody(t *testing.T) { rr := httptest.NewRecorder() - req, err := http.NewRequest("GET", "/", nil) + req, err := http.NewRequest(http.MethodGet, "/", nil) if err != nil { t.Fatal(err) } @@ -370,7 +370,7 @@ func TestHealthHandler_SatusOK_LockFilePresent(t *testing.T) { } } - req, err := http.NewRequest("GET", "/_/health", nil) + req, err := http.NewRequest(http.MethodGet, "/_/health", nil) if err != nil { t.Fatal(err) } @@ -393,7 +393,7 @@ func TestHealthHandler_StatusInternalServerError_LockFileNotPresent(t *testing.T } } - req, err := http.NewRequest("GET", "/_/health", nil) + req, err := http.NewRequest(http.MethodGet, "/_/health", nil) if err != nil { t.Fatal(err) } @@ -409,7 +409,7 @@ func TestHealthHandler_StatusInternalServerError_LockFileNotPresent(t *testing.T func TestHealthHandler_SatusMethoNotAllowed_ForWriteableVerbs(t *testing.T) { rr := httptest.NewRecorder() - verbs := []string{"POST", "PUT", "UPDATE", "DELETE"} + verbs := []string{http.MethodPost, http.MethodPut, "UPDATE", http.MethodDelete} for _, verb := range verbs { req, err := http.NewRequest(verb, "/_/health", nil) -- GitLab