From 7ea8e472adfe07677fa2517b866ce1720418a793 Mon Sep 17 00:00:00 2001 From: Serge Bazanski Date: Fri, 4 Dec 2020 10:48:37 +0100 Subject: [PATCH] wow: implement spaceapi Change-Id: I4b9f08801ae37d2b85de9b089bf09731cfd7dbe6 --- personal/q3k/wow/lib.libsonnet | 2 +- personal/q3k/wow/panel/BUILD.bazel | 1 + personal/q3k/wow/panel/main.go | 1 + personal/q3k/wow/panel/spaceapi.go | 35 ++++++++++++++++++++++++++++++ 4 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 personal/q3k/wow/panel/spaceapi.go diff --git a/personal/q3k/wow/lib.libsonnet b/personal/q3k/wow/lib.libsonnet index 4a9517be..8828b494 100644 --- a/personal/q3k/wow/lib.libsonnet +++ b/personal/q3k/wow/lib.libsonnet @@ -9,7 +9,7 @@ local kube = import "../../../kube/kube.libsonnet"; prefix: "", images: { acore: "registry.k0.hswaw.net/q3k/azerothcore-wowtlk:1606950998", - panel: "registry.k0.hswaw.net/q3k/panel:1607033741-f18a531f9b84c5b33653c8db5d64aaa0af337541", + panel: "registry.k0.hswaw.net/q3k/panel:1607075221-54d0e977e57cc2c8d949c3a7ecf2ff21abd9d143", }, db: { local mkConfig = function(name) { diff --git a/personal/q3k/wow/panel/BUILD.bazel b/personal/q3k/wow/panel/BUILD.bazel index 44162a4c..743e3e27 100644 --- a/personal/q3k/wow/panel/BUILD.bazel +++ b/personal/q3k/wow/panel/BUILD.bazel @@ -7,6 +7,7 @@ go_library( srcs = [ "main.go", "soap.go", + "spaceapi.go", ], importpath = "code.hackerspace.pl/hscloud/personal/q3k/wow/panel", visibility = ["//visibility:private"], diff --git a/personal/q3k/wow/panel/main.go b/personal/q3k/wow/panel/main.go index cd1f586f..aefbd1aa 100644 --- a/personal/q3k/wow/panel/main.go +++ b/personal/q3k/wow/panel/main.go @@ -115,6 +115,7 @@ func main() { http.HandleFunc("/setup", s.viewOauthSetup) http.HandleFunc("/reset", s.viewReset) http.HandleFunc("/logout", s.viewLogout) + http.HandleFunc("/spaceapi", s.viewSpaceAPI) err = http.ListenAndServe(flagListen, nil) if err != nil { diff --git a/personal/q3k/wow/panel/spaceapi.go b/personal/q3k/wow/panel/spaceapi.go new file mode 100644 index 00000000..94923d2f --- /dev/null +++ b/personal/q3k/wow/panel/spaceapi.go @@ -0,0 +1,35 @@ +package main + +import ( + "encoding/json" + "net/http" +) + +type PeopleNowPresent struct { + Names []string `json:"names"` + Value int `json:"value"` +} + +type SpaceAPI struct { + Sensors struct { + PeopleNowPresent []PeopleNowPresent `json:"people_now_present"` + } `json:"sensors"` +} + +func (s *server) viewSpaceAPI(w http.ResponseWriter, r *http.Request) { + res := &SpaceAPI{} + + names := []string{} + for _, p := range s.online(r.Context()) { + names = append(names, p.Character) + } + res.Sensors.PeopleNowPresent = []PeopleNowPresent{ + { + Names: names, + Value: len(names), + }, + } + + w.Header().Set("Content-Type", "application/json") + json.NewEncoder(w).Encode(res) +}