diff options
Diffstat (limited to 'service_telemetry.js')
| -rw-r--r-- | service_telemetry.js | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/service_telemetry.js b/service_telemetry.js index 7dfac51..a78241a 100644 --- a/service_telemetry.js +++ b/service_telemetry.js @@ -23,15 +23,27 @@ module.exports = class Analyzer extends Service { logger.info("requesting download for Telemetry", { api_id: req.params.match }); const category = req.params.category || "regular", db = this.getDatabase(category), - asset = await db.Asset.findOne({ where: { - match_api_id: req.params.match - } }); + asset = await db.Asset.findOne({ + attributes: [ "url" ], + where: { + match_api_id: req.params.match + } + }); + if (asset == undefined) { logger.error("could not find any assets for match", { api_id: req.params.match }); res.sendStatus(404); return; } + + const existing = await db.ParticipantPhases.count({ where: { match_api_id: req.params.match }}); + if (existing > 0) { + logger.info("Telemetry already downloaded", { api_id: req.params.match }); + res.sendStatus(304); + return; + } + await this.forward(this.getTarget(category), asset.url, { persistent: true, headers: { match_api_id: req.params.match } |
