diff options
| author | Paul Buetow <paul@buetow.org> | 2024-05-06 00:15:46 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2024-05-06 00:15:46 +0300 |
| commit | b289b98e9bd7d2fcd31452e1c1083bc5d3066e42 (patch) | |
| tree | c4997cd65f37f8972896d47469cd5b8d24c7f8da | |
| parent | 2f726100e2dd7eaef322386476a076a248ecb3d4 (diff) | |
returning json from /list
| -rw-r--r-- | docs/sample-payload.json | 2 | ||||
| -rw-r--r-- | handlers.go | 9 | ||||
| -rw-r--r-- | main.go | 9 |
3 files changed, 16 insertions, 4 deletions
diff --git a/docs/sample-payload.json b/docs/sample-payload.json index a4ead89..470d21f 100644 --- a/docs/sample-payload.json +++ b/docs/sample-payload.json @@ -1,3 +1,3 @@ { - "body": "hello world" + "body": "hello world man" } diff --git a/handlers.go b/handlers.go index 7606f12..ed030eb 100644 --- a/handlers.go +++ b/handlers.go @@ -1,6 +1,7 @@ package main import ( + "encoding/json" "fmt" "io" "net/http" @@ -45,8 +46,12 @@ func handleList(w http.ResponseWriter, r *http.Request, dataDir string) error { if err != nil { return err } - for _, id := range ids { - fmt.Fprintf(w, id) + + jsonData, err := json.Marshal(ids) + if err != nil { + return err } + + fmt.Fprint(w, string(jsonData)) return nil } @@ -8,7 +8,7 @@ import ( func main() { listenAddr := flag.String("listenAddr", "localhost:8080", "The listen address") - dataDir := flag.String("dataDir", "./data", "The data directory") + dataDir := flag.String("dataDir", "data", "The data directory") http.HandleFunc("/submit", func(w http.ResponseWriter, r *http.Request) { if err := handleSubmit(w, r, *dataDir); err != nil { @@ -17,6 +17,13 @@ func main() { } }) + http.HandleFunc("/list", func(w http.ResponseWriter, r *http.Request) { + if err := handleList(w, r, *dataDir); err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + log.Println(err) + } + }) + log.Println("Server is starting on ", *listenAddr) if err := http.ListenAndServe(*listenAddr, nil); err != err { log.Fatal("Error starting server: ", err) |
