diff --git a/admin/admin.go b/admin/admin.go index 1466b21..a874bbf 100644 --- a/admin/admin.go +++ b/admin/admin.go @@ -2,8 +2,7 @@ package admin import ( "encoding/json" - "html/template" - "net/http" + _ "fmt" "hacklab.nilfm.cc/felt/admin/util" "hacklab.nilfm.cc/felt/models" "hacklab.nilfm.cc/felt/mongodb" @@ -12,6 +11,8 @@ import ( "hacklab.nilfm.cc/quartzgun/renderer" "hacklab.nilfm.cc/quartzgun/router" . "hacklab.nilfm.cc/quartzgun/util" + "html/template" + "net/http" ) func apiGetTableList(next http.Handler, udb auth.UserStore) http.Handler { @@ -33,12 +34,11 @@ func apiGetTableList(next http.Handler, udb auth.UserStore) http.Handler { func apiGetTableData(next http.Handler, udb auth.UserStore, dbAdapter mongodb.DbAdapter) http.Handler { handlerFunc := func(w http.ResponseWriter, req *http.Request) { - tableName := req.Context().Value("Slug") - tablePass := req.Form["passcode"][0] - + urlParams := req.Context().Value("params").(map[string]string) + tableName := urlParams["Slug"] tableKey := models.TableKey{ - Name: tableName.(string), - Passcode: tablePass, + Name: tableName, + Passcode: req.FormValue("passcode"), } if dbAdapter.CheckTable(tableKey) { @@ -46,10 +46,12 @@ func apiGetTableData(next http.Handler, udb auth.UserStore, dbAdapter mongodb.Db auxMessage, _ := dbAdapter.GetAuxMessage(tableKey) availableTokens, _ := dbAdapter.GetTokens(tableKey, true) activeTokens, _ := dbAdapter.GetTokens(tableKey, false) + diceRolls, _ := dbAdapter.GetDiceRolls(tableKey) AddContextValue(req, "tableData", models.Table{ - Name: tableName.(string), - Passcode: tablePass, + Name: tableKey.Name, + Passcode: tableKey.Passcode, + DiceRolls: diceRolls, MapImageUrl: mapUrl, Tokens: activeTokens, AvailableTokens: availableTokens, diff --git a/admin/util/util.go b/admin/util/util.go index 16f125d..2550cfe 100644 --- a/admin/util/util.go +++ b/admin/util/util.go @@ -2,9 +2,9 @@ package util import ( "encoding/base64" - "net/http" "hacklab.nilfm.cc/felt/models" "hacklab.nilfm.cc/quartzgun/auth" + "net/http" "strings" ) diff --git a/gametable/server.go b/gametable/server.go index 6ab28a8..1b7ec2b 100644 --- a/gametable/server.go +++ b/gametable/server.go @@ -4,16 +4,16 @@ import ( "context" "errors" "golang.org/x/time/rate" - "io/ioutil" - "log" - "net/http" - "nhooyr.io/websocket" "hacklab.nilfm.cc/felt/admin" "hacklab.nilfm.cc/felt/models" "hacklab.nilfm.cc/felt/mongodb" "hacklab.nilfm.cc/quartzgun/auth" "hacklab.nilfm.cc/quartzgun/cookie" "hacklab.nilfm.cc/quartzgun/renderer" + "io/ioutil" + "log" + "net/http" + "nhooyr.io/websocket" "sync" "time" ) diff --git a/main.go b/main.go index f4cc36c..d75fad2 100644 --- a/main.go +++ b/main.go @@ -2,12 +2,12 @@ package main import ( "context" - "log" - "net" - "net/http" "hacklab.nilfm.cc/felt/gametable" "hacklab.nilfm.cc/felt/mongodb" "hacklab.nilfm.cc/quartzgun/indentalUserDB" + "log" + "net" + "net/http" "os" "os/signal" "time" diff --git a/static/admin.js b/static/admin.js index d8d7806..f997f1f 100644 --- a/static/admin.js +++ b/static/admin.js @@ -5,6 +5,29 @@ const createTableForm = document.getElementById("createTableForm"); const newTableName = document.getElementById("newTableName"); const newTablePass = document.getElementById("newTablePass"); +async function getTable(name, pass) { + try { + const headers = new Headers(); + headers.set('Authorization', 'Bearer ' + adminToken.access_token); + const res = await fetch(`/admin/api/table/${name}?passcode=${pass}`, { + method: 'GET', + headers: headers, + }); + + if (res.ok) { + infoHtml = "← table list
";
+      infoHtml += await res.text();
+      infoHtml += "
" + adminZone.innerHTML = infoHtml; + } + else { + console.log(res.status); + } + } catch (err) { + console.dir(err) + } +} + async function getTables() { try { const headers = new Headers(); @@ -17,7 +40,7 @@ async function getTables() { const tableList = await res.json(); let tableListHTML = "" adminZone.innerHTML = tableListHTML;