From 95d18e79d119fc47725d54b76c2ff3c3b6e08c17 Mon Sep 17 00:00:00 2001 From: William Reid Date: Wed, 13 Feb 2019 22:44:39 -0500 Subject: [PATCH] Initial commit --- .gitignore | 2 ++ README.md | 2 ++ data-types.go | 6 ++++++ gateway.go | 27 +++++++++++++++++++++++++++ 4 files changed, 37 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 data-types.go create mode 100644 gateway.go diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d9f8f33 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.exe +.idea/* \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..95ec7d4 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# gateway-server +This is a commit of skeleton code for the gateway server \ No newline at end of file diff --git a/data-types.go b/data-types.go new file mode 100644 index 0000000..580dff5 --- /dev/null +++ b/data-types.go @@ -0,0 +1,6 @@ +package main + +type StampedReading struct { + Timestamp int + Value interface{} +} diff --git a/gateway.go b/gateway.go new file mode 100644 index 0000000..3c6e063 --- /dev/null +++ b/gateway.go @@ -0,0 +1,27 @@ +package main + +import ( + "encoding/json" + "fmt" + "io/ioutil" + "net/http" +) + +func main() { + http.HandleFunc("/data", dataHandler) + if err := http.ListenAndServe(":8081", nil); err != nil { + fmt.Printf("Error serving 8081: %v", err) + } +} + +func dataHandler(w http.ResponseWriter, r *http.Request) { + fmt.Printf("Got data from: %+v at %v\n", r.Header.Get("uuid"), r.Header.Get("time")) + body, _ := ioutil.ReadAll(r.Body) + var data map[string][]StampedReading + if err := json.Unmarshal(body, &data); err != nil { + fmt.Printf("Error unmarshalling body: %v\n", err) + } else { + fmt.Printf("Data received: %v\n", data) + } + w.WriteHeader(200) +}