diff options
| author | schneefux <schneefux+commit@schneefux.xyz> | 2017-04-06 17:23:10 +0200 |
|---|---|---|
| committer | schneefux <schneefux+commit@schneefux.xyz> | 2017-04-06 17:23:10 +0200 |
| commit | 4e85c8f9e32d556e0f8682f9ecbae1e4a8bf49e6 (patch) | |
| tree | 65ca0b310d9f50333ae8310f29b63d157014e558 | |
| parent | 169c8954ae384fdeae8b08ddff1f3c2edb9206b3 (diff) | |
| download | bridge-4e85c8f9e32d556e0f8682f9ecbae1e4a8bf49e6.tar.gz bridge-4e85c8f9e32d556e0f8682f9ecbae1e4a8bf49e6.zip | |
support cruncher
| -rw-r--r-- | index.html | 29 | ||||
| -rw-r--r-- | server.js | 15 |
2 files changed, 44 insertions, 0 deletions
@@ -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> @@ -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"); |
