diff options
| author | schneefux <schneefux+commit@schneefux.xyz> | 2018-01-06 16:23:29 +0100 |
|---|---|---|
| committer | schneefux <schneefux+commit@schneefux.xyz> | 2018-01-06 16:23:29 +0100 |
| commit | 86af49647080cce224b9ecc6d4736c5c64f0acf0 (patch) | |
| tree | 7b16089439fb5749b3d15d35403b483e14cb34e7 | |
| parent | 1a98e5757ed9a4ac7e088c999ae8775d8acb6fc9 (diff) | |
| download | bridge-86af49647080cce224b9ecc6d4736c5c64f0acf0.tar.gz bridge-86af49647080cce224b9ecc6d4736c5c64f0acf0.zip | |
mitigate API error on /player search
| -rw-r--r-- | service_grab.js | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/service_grab.js b/service_grab.js index cb499ca..0649b93 100644 --- a/service_grab.js +++ b/service_grab.js @@ -276,24 +276,29 @@ module.exports = class Analyzer extends Service { // players.length and page length will be 1 in 99.9999% of all cases // - but just in case. - const players = await Promise.map(await api.requests("players", region, options, logger), async (player) => { - logger.info("found", { name: name, id: id, region: region }); - await this.notify("player." + name, "search_success"); - // send to processor, so the player is in db - // no matter whether we find matches or not - await Promise.map(this.getTargets(category + "_player"), async (target) => { - await this.notify("player." + player.name, "player_pending"); - await this.forward(target, JSON.stringify(player), { - persistent: true, type: "player", - headers: { notify: "player." + player.name } + try { + const players = await Promise.map(await api.requests("players", region, options, logger), async (player) => { + logger.info("found", { name: name, id: id, region: region }); + await this.notify("player." + name, "search_success"); + // send to processor, so the player is in db + // no matter whether we find matches or not + await Promise.map(this.getTargets(category + "_player"), async (target) => { + await this.notify("player." + player.name, "player_pending"); + await this.forward(target, JSON.stringify(player), { + persistent: true, type: "player", + headers: { notify: "player." + player.name } + }); }); + return player; }); - return player; - }); - if (players.length == 0) - logger.warn("not found", { name: name, id: id, region: region }); + if (players.length == 0) + logger.warn("not found", { name, id, region }); - return players; + return players; + } catch (err) { + logger.error("error during player search", { name, id, region, err }); + return []; + } } // search for player name on all shards |
