summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschneefux <schneefux+commit@schneefux.xyz>2017-04-10 19:25:52 +0200
committerschneefux <schneefux+commit@schneefux.xyz>2017-04-10 19:25:52 +0200
commit9c640db98ac68bae9b77b5b36240957fb86f05f8 (patch)
tree4ac8adfe586b5bc3ee700f44c92f6bdb77aa990b
parent38282a3db749405330419eb9c94276a5e00cf4cf (diff)
downloadbridge-9c640db98ac68bae9b77b5b36240957fb86f05f8.tar.gz
bridge-9c640db98ac68bae9b77b5b36240957fb86f05f8.zip
add cruncher API
-rw-r--r--index.html26
-rw-r--r--server.js14
2 files changed, 19 insertions, 21 deletions
diff --git a/index.html b/index.html
index dd1bf7d..6325eb1 100644
--- a/index.html
+++ b/index.html
@@ -24,19 +24,8 @@
</p>
<p>
<form id="crunch-form">
- <div>
- <input type="text" id="crunch-on">
- <label for="crunch-on">Table</label>
- </div>
- <div>
- <input type="text" id="crunch-filter">
- <label for="crunch-filter">Filter</label>
- </div>
- <div>
- <input type="text" id="crunch-value">
- <label for="crunch-value">Filter value</label>
- </div>
- <input type="submit" value="Crunch stats">
+ <input type="text" id="crunch-name">
+ <input type="submit" value="Crunch">
</form>
</p>
@@ -113,14 +102,9 @@
$("#crunch-form").submit((e) => {
e.preventDefault();
- let dimension_on = $("#crunch-on").val(),
- data = {};
- data[$("#crunch-filter").val()] = $("#crunch-value").val();
- $.ajax("/api/stats/" + dimension_on + "/update", {
- data: JSON.stringify(data),
- contentType: "application/json",
- type: "POST"
- });
+ let ign = $("#crunch-name").val();
+ subscribe(ign);
+ $.post("/api/player/" + ign + "/crunch");
});
</script>
</body>
diff --git a/server.js b/server.js
index 3dddb38..235723d 100644
--- a/server.js
+++ b/server.js
@@ -28,6 +28,7 @@ var rabbit, ch, seq,
ch = await rabbit.createChannel();
await ch.assertQueue("grab", {durable: true});
await ch.assertQueue("process", {durable: true});
+ await ch.assertQueue("crunch", {durable: true});
break;
} catch (err) {
console.error(err);
@@ -158,6 +159,19 @@ app.post("/api/player/:name/update", async (req, res) => {
await updatePlayer(player);
res.sendStatus(204);
});
+// crunch a known user
+app.post("/api/player/:name/crunch", async (req, res) => {
+ let player = await model.Player.findOne({ where: { name: req.params.name } });
+ if (player == undefined) {
+ console.log("player not found in db, won't crunch", req.params.name);
+ res.sendStatus(404);
+ return;
+ }
+ console.log("player in db, crunching", req.params.name);
+ await ch.sendToQueue("crunch", new Buffer(player.api_id),
+ { persistent: true, type: "player" });
+ res.sendStatus(204);
+});
// update a random user
app.post("/api/player", async (req, res) => {
let player = await model.Player.findOne({ order: [ Seq.fn("RAND") ] });