save dice rolls to db; mongo int arrays are weird
Iris Lightshard nilix@nilfm.cc
PGP Signature
-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEkFh6dA+k/6CXFXU4O3+8IhROY5gFAmPwcbEACgkQO3+8IhRO Y5i9Hw//V/OjWr4XqaPdXqu8bmLIc67qk8zHZyFWA+ePZU89njGzUAEOx0M/42Lp Q0oaiNxRF8c3YiGSD+Wh54g/kUuefM3HGhnwcL2WrVTYb+MxthdBcy2HS2SfucFR 4bTuCu1cKHOfmpF7mCJhyAX19zQs/kqdSm9T41Q4qIqq30Wef2d/v8i68a0ByJff xDrPJfKyHhjQM+9Sad3Mzg0/Z7wsKVJ+YGtn7mds//oko73rymTxFMJw4poOHU0b KhVKqL2e8MPHCbkKeNQmRBXgSzBeDR3+rm/GCsCituIlabI/wK33HFWJKcl6j0Mm VVw6W+LSkB/CKkFJ9iH4+DJui3EAVookjDjZ58RhY2r8OlvAblYdqBELRMROQKRd 9HJSejUDL3NAbBVYRVucWLuY4JORj76ZDZlEusisYhUbpuU+6cIXnoZrWtpdCXeq AXHH8wBDAORqhT47JGTgYfEyRqHJPUW4Z1+JiRRpeVgqslykJVh8+G5OOfJ4qwu2 rpWdauvtaRMyhZIY5rwqU+L8D9m4XeRggUOvac9TFK2lgX4NWtMTL7gCqs83tJ+W Su617We/tZlV7I5jrR09q3LcZlT945JhNgs7+w5/lKd/f/e+MObsw479Gy+WWJSt YzsCU5vFsAKlfsU87yO5r97R509wV1A/29qdDCRsTSlAIVtBMRY= =kkbo -----END PGP SIGNATURE-----
4 files changed,
19 insertions(+),
9 deletions(-)
M
gametable/server.go
→
gametable/server.go
@@ -205,6 +205,13 @@ return []byte("{\"error\": \"table not found\"}")
} func (self *GameTableServer) writeToDB(tableMsg models.TableMessage) error { + key := *tableMsg.Key + if tableMsg.DiceRoll != nil { + err := self.dbAdapter.InsertDiceRoll(key, *tableMsg.DiceRoll) + if err != nil { + fmt.Println(err.Error()) + } + } return nil }
M
models/models.go
→
models/models.go
@@ -36,9 +36,9 @@ AuxMessage string `json:"auxMessage"`
} type TableMessage struct { - Key *TableKey `json:"key"` - Roll *DiceRoll `json:"roll"` - Token *Token `json:"token"` - MapImg *string `json:"mapImg"` - AuxMsg *string `json:"auxMsg"` + Key *TableKey `json:"key"` + DiceRoll *DiceRoll `json:"diceRoll"` + Token *Token `json:"token"` + MapImg *string `json:"mapImg"` + AuxMsg *string `json:"auxMsg"` }
M
static/dice.js
→
static/dice.js
@@ -15,16 +15,14 @@ return;
} if (numDice && faces && note) { - console.log("here?") const n = Number(numDice.value); const d = Number(faces.value); r = new Uint8Array(n); crypto.getRandomValues(r); const rolls = []; for (const i of r) { - rolls.push(r%d + 1) + rolls.push(i%d + 1) } - console.log(rolls); publish({diceRoll: { faces: d, roll: rolls,
M
static/socket.js
→
static/socket.js
@@ -27,12 +27,17 @@ // TODO: add message to let user know they are at the table
console.info("socket connected"); }); conn.addEventListener("message", e => { - console.log(e.data); + const data = JSON.parse(e.data); if (table == null) { + // first fetch comes from mongo, so the rolls array in each diceRoll is a byte array and needs to be decoded + data.diceRolls.forEach(r=>{ + r.roll = Uint8Array.from(atob(r.roll), c => c.charCodeAt(0)) + }) table = JSON.parse(e.data); } else { // UPDATE THE TABLE! } + console.log(data); }); } }