use switch/case statements for validating formats / layouts
This commit is contained in:
parent
ba5bf140a2
commit
9cc5f05f8c
@ -76,22 +76,32 @@ func (h *graphHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|||||||
buf := bytes.NewBufferString(dot)
|
buf := bytes.NewBufferString(dot)
|
||||||
|
|
||||||
format := r.URL.Query().Get("format")
|
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.
|
// If the raw dot data is requested, return it as string.
|
||||||
// This allows client-side rendering rather than server-side.
|
// This allows client-side rendering rather than server-side.
|
||||||
w.Write(buf.Bytes())
|
w.Write(buf.Bytes())
|
||||||
return
|
return
|
||||||
} else if format == "" {
|
|
||||||
format = "svg"
|
case "svg", "png", "bmp", "fig", "gif", "json", "ps":
|
||||||
} else if format != "png" && format != "bmp" && format != "fig" && format != "gif" && format != "json" && format != "ps" {
|
// Accepted format
|
||||||
|
|
||||||
|
default:
|
||||||
http.Error(w, "unsupported format", http.StatusInternalServerError)
|
http.Error(w, "unsupported format", http.StatusInternalServerError)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
layout := r.URL.Query().Get("layout")
|
layout := r.URL.Query().Get("layout")
|
||||||
if layout == "" {
|
switch layout {
|
||||||
|
case "":
|
||||||
layout = "circo"
|
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)
|
http.Error(w, "unsupported layout", http.StatusInternalServerError)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user