summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschneefux <schneefux+commit@schneefux.xyz>2017-04-06 17:23:10 +0200
committerschneefux <schneefux+commit@schneefux.xyz>2017-04-06 17:23:10 +0200
commit4e85c8f9e32d556e0f8682f9ecbae1e4a8bf49e6 (patch)
tree65ca0b310d9f50333ae8310f29b63d157014e558
parent169c8954ae384fdeae8b08ddff1f3c2edb9206b3 (diff)
downloadbridge-4e85c8f9e32d556e0f8682f9ecbae1e4a8bf49e6.tar.gz
bridge-4e85c8f9e32d556e0f8682f9ecbae1e4a8bf49e6.zip
support cruncher
-rw-r--r--index.html29
-rw-r--r--server.js15
2 files changed, 44 insertions, 0 deletions
diff --git a/index.html b/index.html
index e542138..f12c585 100644
--- a/index.html
+++ b/index.html
@@ -17,6 +17,23 @@
<input type="submit" value="Update random player">
</form>
</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">
+ </form>
+ </p>
<ul id="updates"></ul>
@@ -82,6 +99,18 @@
subscribe(resp.name);
});
});
+
+ $("#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"
+ });
+ });
</script>
</body>
</html>
diff --git a/server.js b/server.js
index ec7e3d0..c921d00 100644
--- a/server.js
+++ b/server.js
@@ -5,6 +5,7 @@ var amqp = require("amqplib"),
Seq = require("sequelize"),
request = require("request-promise"),
express = require("express"),
+ bodyParser = require("body-parser"),
http = require("http"),
sleep = require("sleep-promise");
@@ -38,6 +39,7 @@ var rabbit, ch, seq,
server.listen(8880);
app.use(express.static("assets"));
+app.use(bodyParser.json());
// request a grab job
function requestUpdate(name, region, last_match_created_date, id) {
@@ -158,6 +160,19 @@ app.post("/api/player", async (req, res) => {
res.json(player);
});
+// crunch data
+app.post("/api/stats/:dimension_on/update", async (req, res) => {
+ // forward JSON
+ let payload = {
+ dimension_on: req.params.dimension_on,
+ filter: req.body
+ };
+ console.log(payload);
+ await ch.sendToQueue("crunch", new Buffer(JSON.stringify(payload)),
+ { persistent: true });
+ res.sendStatus(204);
+});
+
/* internal monitoring */
app.get("/", (req, res) => {
res.sendFile(__dirname + "/index.html");