From 9cc5f05f8ca20678109e17b491c5164752b7c094 Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Sun, 18 Jul 2021 23:57:26 +0200 Subject: [PATCH] use switch/case statements for validating formats / layouts --- cmd/kg/handlers.go | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/cmd/kg/handlers.go b/cmd/kg/handlers.go index 986b06c..2c7504f 100644 --- a/cmd/kg/handlers.go +++ b/cmd/kg/handlers.go @@ -76,22 +76,32 @@ func (h *graphHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { buf := bytes.NewBufferString(dot) format := r.URL.Query().Get("format") - if format == "dot" || format == "gv" { + switch format { + case "": + format = "svg" + case "dot", "gv": // If the raw dot data is requested, return it as string. // This allows client-side rendering rather than server-side. w.Write(buf.Bytes()) return - } else if format == "" { - format = "svg" - } else if format != "png" && format != "bmp" && format != "fig" && format != "gif" && format != "json" && format != "ps" { + + case "svg", "png", "bmp", "fig", "gif", "json", "ps": + // Accepted format + + default: http.Error(w, "unsupported format", http.StatusInternalServerError) return } layout := r.URL.Query().Get("layout") - if layout == "" { + switch layout { + case "": layout = "circo" - } else if layout != "dot" && layout != "neato" && format != "twopi" && format != "fdp" { + + case "circo", "dot", "neato", "twopi", "fdp": + // Accepted layout + + default: http.Error(w, "unsupported layout", http.StatusInternalServerError) return }