about summary refs log tree commit diff
path: root/streaming
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2017-02-02 17:10:59 +0100
committerEugen Rochko <eugen@zeonfederated.com>2017-02-02 17:10:59 +0100
commitdf507f5e6e0b50b4136ad50777354bac6bde7736 (patch)
tree8fa2c2bffd4394ace405752372ac8b71c140c31b /streaming
parent889b814385b55785cec98de4dd26f2986e705052 (diff)
Fix streaming API queries
Diffstat (limited to 'streaming')
-rw-r--r--streaming/index.js9
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) {