summaryrefslogtreecommitdiff
path: root/server.js
diff options
context:
space:
mode:
authorschneefux <schneefux+commit@schneefux.xyz>2017-05-29 20:19:56 +0200
committerschneefux <schneefux+commit@schneefux.xyz>2017-05-29 20:19:56 +0200
commit094e4f921adbccfcaf78b0382855982ec652f7a1 (patch)
tree3084c8c783d83df35a4fb6b5d7d787424628cf3b /server.js
parent81d5c8ee91727a60642dc8efb9904f242fa2281e (diff)
downloadbridge-094e4f921adbccfcaf78b0382855982ec652f7a1.tar.gz
bridge-094e4f921adbccfcaf78b0382855982ec652f7a1.zip
add endpoint to grab team matches by IGNs
Diffstat (limited to 'server.js')
-rw-r--r--server.js32
1 files changed, 32 insertions, 0 deletions
diff --git a/server.js b/server.js
index 4aee309..b5a0c70 100644
--- a/server.js
+++ b/server.js
@@ -144,6 +144,30 @@ async function grabPlayer(name, region, last_match_created_date, id, category) {
headers: { notify: "player." + name }
});
}
+// request grab job for multiple players' matches
+async function grabPlayers(names, region, grabstart, category) {
+ const payload = {
+ "region": region,
+ "params": {
+ "filter[playerNames]": names,
+ "filter[createdAt-start]": grabstart.toISOString(),
+ "filter[gameMode]": gameModesForCategory(category),
+ "sort": "createdAt"
+ }
+ };
+ logger.info("requesting triple player grab", {
+ names: names,
+ region: region,
+ category: category
+ });
+
+ await ch.sendToQueue(grabQueueForCategory(category),
+ new Buffer(JSON.stringify(payload)), {
+ persistent: true,
+ type: "matches",
+ headers: { notify: "player." + names }
+ });
+}
// request grab jobs for a region's matches
async function grabMatches(region, last_match_created_date) {
@@ -530,6 +554,14 @@ app.post("/api/team/:id/crunch", async (req, res) => {
crunchTeam(req.params.id); // fire away
res.sendStatus(204);
});
+// grab multiple users by IGN
+app.post("/api/players/:region/grab/:category*?", async (req, res) => {
+ let grabstart = new Date();
+ grabstart.setTime(grabstart.getTime() - req.query.minutesAgo * 60000);
+ grabPlayers(req.query.names, req.params.region, grabstart,
+ req.params.category || "regular");
+ res.sendStatus(204);
+});
// update a random user
app.post("/api/player", async (req, res) => {
let player = await model.Player.findOne({ order: [ Seq.fn("RAND") ] });