diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2017-02-02 17:10:59 +0100 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2017-02-02 17:10:59 +0100 |
commit | df507f5e6e0b50b4136ad50777354bac6bde7736 (patch) | |
tree | 8fa2c2bffd4394ace405752372ac8b71c140c31b | |
parent | 889b814385b55785cec98de4dd26f2986e705052 (diff) |
Fix streaming API queries
-rw-r--r-- | streaming/index.js | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/streaming/index.js b/streaming/index.js index af1da8ae7..43d8895f1 100644 --- a/streaming/index.js +++ b/streaming/index.js @@ -44,7 +44,6 @@ const authenticationMiddleware = (req, res, next) => { pgPool.connect((err, client, done) => { if (err) { - log.error(err) return next(err) } @@ -52,7 +51,6 @@ const authenticationMiddleware = (req, res, next) => { done() if (err) { - log.error(err) return next(err) } @@ -71,10 +69,13 @@ const authenticationMiddleware = (req, res, next) => { } const errorMiddleware = (err, req, res, next) => { + log.error(err) res.writeHead(err.statusCode || 500, { 'Content-Type': 'application/json' }) res.end(JSON.stringify({ error: err.statusCode ? `${err}` : 'An unexpected error occured' })) } +const placeholders = (arr, shift = 0) => arr.map((_, i) => `$${i + 1 + shift}`).join(', '); + const streamFrom = (id, req, res, needsFiltering = false) => { log.verbose(`Starting stream from ${id} for ${req.accountId}`) @@ -100,9 +101,9 @@ const streamFrom = (id, req, res, needsFiltering = false) => { } const unpackedPayload = JSON.parse(payload) - const targetAccountIds = [unpackedPayload.account.id] + unpackedPayload.mentions.map(item => item.id) + (unpackedPayload.reblog ? unpackedPayload.reblog.account.id : []) + const targetAccountIds = [unpackedPayload.account.id].concat(unpackedPayload.mentions.map(item => item.id)).concat(unpackedPayload.reblog ? [unpackedPayload.reblog.account.id] : []) - client.query('SELECT target_account_id FROM blocks WHERE account_id = $1 AND target_account_id IN ($2)', [req.accountId, targetAccountIds], (err, result) => { + client.query(`SELECT target_account_id FROM blocks WHERE account_id = $1 AND target_account_id IN (${placeholders(targetAccountIds, 1)})`, [req.accountId].concat(targetAccountIds), (err, result) => { done() if (err) { |