moth

Monarch Of The Hill game server
git clone https://git.woozle.org/neale/moth.git

moth / theme
Neale Pickett  ·  2023-09-13

token.mjs

 1/**
 2 * Functionality for token.html
 3 */
 4import * as moth from "./moth.mjs"
 5import * as common from "./common.mjs"
 6
 7const server = new moth.Server(".")
 8
 9/**
10 * Handle a submit event on a form.
11 * 
12 * @param {SubmitEvent} event 
13 */
14async function formSubmitHandler(event) {
15    event.preventDefault()
16
17    let formData = new FormData(event.target)
18    let token = formData.get("token")
19    let vals = token.split(":")
20    let category = vals[0]
21    let points = Number(vals[1])
22    let proposed = vals[2]
23    if (!category || !points || !proposed) {
24        console.info("Not a token:", vals)
25        common.Toast("This is not a properly-formed token")
26        return
27    }
28    try {
29        let message = await server.SubmitAnswer(category, points, proposed)
30        common.Toast(message)
31    }
32    catch (error) {
33        if (error.message == "incorrect answer") {
34            common.Toast("Unknown token")
35        } else {
36            console.error(error)
37            common.Toast(error)
38        }
39    }
40}
41
42function init() {
43    for (let form of document.querySelectorAll("form.token")) {
44        form.addEventListener("submit", formSubmitHandler)
45    }
46}
47
48common.WhenDOMLoaded(init)