From 20e23c314658b35ab7358cb29746a764f5146e7a Mon Sep 17 00:00:00 2001 From: schneefux Date: Sat, 25 Mar 2017 14:43:14 +0100 Subject: do not send duplicate notifications --- api.js | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) (limited to 'api.js') diff --git a/api.js b/api.js index 87a5fda..96431e0 100644 --- a/api.js +++ b/api.js @@ -280,25 +280,34 @@ async function listen() { // find all interesting jobs, delete them & forward their notification if (msg.channel == "grab_failed") { jobs = await raw.query(` - DELETE FROM jobs WHERE - type='grab' AND status='failed' AND payload->'error'->>'title'='Not Found' - RETURNING - payload->'params'->>'filter[playerIds]' AS player_id, - payload->'params'->>'filter[playerNames]' AS player_name + WITH grab_failed AS ( + DELETE FROM jobs WHERE + type='grab' AND status='failed' AND payload->'error'->>'title'='Not Found' + RETURNING + payload->'params'->>'filter[playerIds]' AS player_id, + payload->'params'->>'filter[playerNames]' AS player_name + ) + SELECT DISTINCT * FROM grab_failed `); } if (msg.channel == "process_finished") { jobs = await raw.query(` - DELETE FROM jobs WHERE - type='process' AND status='finished' - RETURNING payload->>'playername' AS player_name + WITH process_finished AS ( + DELETE FROM jobs WHERE + type='process' AND status='finished' + RETURNING payload->>'playername' AS player_name + ) + SELECT DISTINCT * FROM process_finished `); } if (msg.channel == "compile_finished") { jobs = await raw.query(` - DELETE FROM jobs WHERE - type='compile' AND payload->>'type'='player' AND status='finished' - RETURNING payload->>'id' AS player_id + WITH compile_finished AS ( + DELETE FROM jobs WHERE + type='compile' AND payload->>'type'='player' AND status='finished' + RETURNING payload->>'id' AS player_id + ) + SELECT DISTINCT * FROM compile_finished `); } -- cgit v1.3.1