Add xml response

This commit is contained in:
Eliot Whalan 2016-06-19 16:17:28 +10:00
parent d9ccc888ec
commit 84e7f7e95c
1 changed files with 17 additions and 7 deletions

24
main.go
View File

@ -5,6 +5,7 @@ import (
"database/sql" "database/sql"
"encoding/base64" "encoding/base64"
"encoding/json" "encoding/json"
"encoding/xml"
"fmt" "fmt"
"html" "html"
"io" "io"
@ -101,16 +102,16 @@ func saveHandler(w http.ResponseWriter, r *http.Request) {
} }
values := save(buf) values := save(buf)
b := &Response{
ID: values[0],
HASH: values[1],
URL: values[2],
SIZE: len(values[3]),
DELKEY: values[4],
}
switch output { switch output {
case "json": case "json":
b := &Response{
ID: values[0],
HASH: values[1],
URL: values[2],
SIZE: len(values[3]),
DELKEY: values[4],
}
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
err := json.NewEncoder(w).Encode(b) err := json.NewEncoder(w).Encode(b)
@ -119,6 +120,15 @@ func saveHandler(w http.ResponseWriter, r *http.Request) {
http.Error(w, err.Error(), http.StatusInternalServerError) http.Error(w, err.Error(), http.StatusInternalServerError)
return return
} }
case "xml":
x, err := xml.MarshalIndent(b, "", " ")
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
w.Header().Set("Content-Type", "application/xml")
w.Write(x)
default: default:
io.WriteString(w, values[2]+"\n") io.WriteString(w, values[2]+"\n")