From 8fc264f11b60884da9288299b6950ece1cf749f1 Mon Sep 17 00:00:00 2001 From: schneefux Date: Thu, 4 May 2017 22:30:44 +0200 Subject: add endpoint for team crunching --- index.html | 11 +++++++++++ server.js | 21 ++++++++++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/index.html b/index.html index 8a699cc..f8d1c56 100644 --- a/index.html +++ b/index.html @@ -32,6 +32,12 @@

+

+

+ + +
+

@@ -146,6 +152,11 @@ const ign = $("#crunch-name").val(); $.post("/api/player/" + ign + "/crunch"); }); + $("#crunch-team-form").submit((e) => { + e.preventDefault(); + const id = $("#crunch-team").val(); + $.post("/api/team/" + id + "/crunch"); + }); $("#crunchglobal-form").submit((e) => { const force = $("#crunch-force").is(":checked"); e.preventDefault(); diff --git a/server.js b/server.js index 98923f3..3004d39 100644 --- a/server.js +++ b/server.js @@ -368,6 +368,13 @@ async function crunchPlayer(api_id) { // global stats would increase on every player refresh otherwise } +// reset fame and crunch +// TODO: incremental crunch possible? +async function crunchTeam(team_id) { + await ch.sendToQueue(CRUNCH_QUEUE, new Buffer(team_id), + { persistent: true, type: "team" }); +} + // crunch (force = recrunch) global stats async function crunchGlobal(force=false) { // get lcpid from keys table @@ -472,7 +479,7 @@ app.post("/api/player/:name/update/:category*?", async (req, res) => { app.post("/api/player/:name/crunch", async (req, res) => { const player = await model.Player.findOne({ where: { name: req.params.name } }); if (player == undefined) { - logger.warn("player not found in db, won't recrunch", + logger.error("player not found in db, won't recrunch", { name: req.params.name }); res.sendStatus(404); return; @@ -481,6 +488,18 @@ app.post("/api/player/:name/crunch", async (req, res) => { crunchPlayer(player.api_id); // fire away res.sendStatus(204); }); +// crunch a known team +app.post("/api/team/:id/crunch", async (req, res) => { + if (await model.Team.findOne({ where: { id: req.params.id } }) == undefined) { + logger.error("team not found in db, won't recrunch", + { name: req.params.id }); + res.sendStatus(404); + return; + } + logger.info("team in db, recrunching", { name: req.params.id }); + crunchTeam(req.params.id); // fire away + res.sendStatus(204); +}); // update a random user app.post("/api/player", async (req, res) => { let player = await model.Player.findOne({ order: [ Seq.fn("RAND") ] }); -- cgit v1.3.1