Add check for missing tag param in streaming API (#8955)
* Add check for missing tag param in streaming API Fixes error: ``` TypeError: Cannot read property 'toLowerCase' of undefined at app.get (.../streaming/index.js:493:50) ``` * Fix code style issues
This commit is contained in:
		| @ -449,6 +449,11 @@ const startWorker = (workerId) => { | ||||
|     }); | ||||
|   }; | ||||
|  | ||||
|   const httpNotFound = res => { | ||||
|     res.writeHead(404, { 'Content-Type': 'application/json' }); | ||||
|     res.end(JSON.stringify({ error: 'Not found' })); | ||||
|   }; | ||||
|  | ||||
|   app.use(setRequestId); | ||||
|   app.use(setRemoteAddress); | ||||
|   app.use(allowCrossDomain); | ||||
| @ -490,11 +495,25 @@ const startWorker = (workerId) => { | ||||
|   }); | ||||
|  | ||||
|   app.get('/api/v1/streaming/hashtag', (req, res) => { | ||||
|     streamFrom(`timeline:hashtag:${req.query.tag.toLowerCase()}`, req, streamToHttp(req, res), streamHttpEnd(req), true); | ||||
|     const { tag } = req.query; | ||||
|  | ||||
|     if (!tag || tag.length === 0) { | ||||
|       httpNotFound(res); | ||||
|       return; | ||||
|     } | ||||
|  | ||||
|     streamFrom(`timeline:hashtag:${tag.toLowerCase()}`, req, streamToHttp(req, res), streamHttpEnd(req), true); | ||||
|   }); | ||||
|  | ||||
|   app.get('/api/v1/streaming/hashtag/local', (req, res) => { | ||||
|     streamFrom(`timeline:hashtag:${req.query.tag.toLowerCase()}:local`, req, streamToHttp(req, res), streamHttpEnd(req), true); | ||||
|     const { tag } = req.query; | ||||
|  | ||||
|     if (!tag || tag.length === 0) { | ||||
|       httpNotFound(res); | ||||
|       return; | ||||
|     } | ||||
|  | ||||
|     streamFrom(`timeline:hashtag:${tag.toLowerCase()}:local`, req, streamToHttp(req, res), streamHttpEnd(req), true); | ||||
|   }); | ||||
|  | ||||
|   app.get('/api/v1/streaming/list', (req, res) => { | ||||
| @ -502,8 +521,7 @@ const startWorker = (workerId) => { | ||||
|  | ||||
|     authorizeListAccess(listId, req, authorized => { | ||||
|       if (!authorized) { | ||||
|         res.writeHead(404, { 'Content-Type': 'application/json' }); | ||||
|         res.end(JSON.stringify({ error: 'Not found' })); | ||||
|         httpNotFound(res); | ||||
|         return; | ||||
|       } | ||||
|  | ||||
| @ -553,9 +571,19 @@ const startWorker = (workerId) => { | ||||
|       streamFrom(channel, req, streamToWs(req, ws), streamWsEnd(req, ws, subscriptionHeartbeat(channel)), true); | ||||
|       break; | ||||
|     case 'hashtag': | ||||
|       if (!location.query.tag || location.query.tag.length === 0) { | ||||
|         ws.close(); | ||||
|         return; | ||||
|       } | ||||
|  | ||||
|       streamFrom(`timeline:hashtag:${location.query.tag.toLowerCase()}`, req, streamToWs(req, ws), streamWsEnd(req, ws), true); | ||||
|       break; | ||||
|     case 'hashtag:local': | ||||
|       if (!location.query.tag || location.query.tag.length === 0) { | ||||
|         ws.close(); | ||||
|         return; | ||||
|       } | ||||
|  | ||||
|       streamFrom(`timeline:hashtag:${location.query.tag.toLowerCase()}:local`, req, streamToWs(req, ws), streamWsEnd(req, ws), true); | ||||
|       break; | ||||
|     case 'list': | ||||
|  | ||||
		Reference in New Issue
	
	Block a user