diff --git a/src/index.js b/src/index.js index bfb82eb..809a1f8 100644 --- a/src/index.js +++ b/src/index.js @@ -19,6 +19,7 @@ app.use("/game/stop", require("./routes/game/stop.js")) app.use("/game/running", require("./routes/game/running.js")) app.use("/game/renew", require("./routes/game/renew.js")) app.use("/game/status", require("./routes/game/status.js")) +app.use("/game/execute", require("./routes/game/execute.js")) app.use("/render/asset", require("./routes/render/asset.js")) app.use("/render/game", require("./routes/render/game.js")) diff --git a/src/routes/game/execute.js b/src/routes/game/execute.js new file mode 100644 index 0000000..09bcacc --- /dev/null +++ b/src/routes/game/execute.js @@ -0,0 +1,19 @@ +const { randomUUID } = require("crypto") +const express = require("express") +const app = express.Router() + +const GameJob = require("../../lib/classes/GameJob.js") + +app.use(express.json()) + +app.post("/:token", async (request, response) => { + const game = global.games.get(request.params.token) + if (!game) return response.status(404).json({ error: "Game is not running" }) + + const { script } = request.body + const jobResponse = await game.Execute(randomUUID(), script) + + return response.json({ response: jobResponse }) +}) + +module.exports = app diff --git a/src/routes/game/running.js b/src/routes/game/running.js index e387e7b..a33b8df 100644 --- a/src/routes/game/running.js +++ b/src/routes/game/running.js @@ -9,7 +9,7 @@ app.get("/:token", async (request, response) => { const running = await game.Running() if (!running && game) { - game.Close() + game.Stop() return response.json(false) }