Showing
2 changed files
with
16 additions
and
20 deletions
| ... | @@ -4,6 +4,7 @@ const Hub = require('../../models/hub'); | ... | @@ -4,6 +4,7 @@ const Hub = require('../../models/hub'); |
| 4 | const Medicine = require('../../models/medicine'); | 4 | const Medicine = require('../../models/medicine'); |
| 5 | const Mqtt = require('../../lib/MqttModule'); | 5 | const Mqtt = require('../../lib/MqttModule'); |
| 6 | const jwt = require('jsonwebtoken'); | 6 | const jwt = require('jsonwebtoken'); |
| 7 | +const { createIndexes } = require('../../models/bottle'); | ||
| 7 | 8 | ||
| 8 | //약병 등록 | 9 | //약병 등록 |
| 9 | exports.bottleConnect = async(ctx) => { | 10 | exports.bottleConnect = async(ctx) => { |
| ... | @@ -171,13 +172,20 @@ exports.getBottleList = async(ctx) => { | ... | @@ -171,13 +172,20 @@ exports.getBottleList = async(ctx) => { |
| 171 | } | 172 | } |
| 172 | 173 | ||
| 173 | const { userId } = jwt.verify(token, process.env.JWT_SECRET); | 174 | const { userId } = jwt.verify(token, process.env.JWT_SECRET); |
| 174 | - const hubList = await Hub.find({ userId }) | 175 | + const { hubId } = ctx.params; |
| 175 | - if(!hubList || !hubList.length) { | 176 | + |
| 177 | + const hub = await Hub.findByHubId(hubId); | ||
| 178 | + if(!hub) { | ||
| 176 | ctx.status = 404; | 179 | ctx.status = 404; |
| 177 | return; | 180 | return; |
| 178 | } | 181 | } |
| 179 | 182 | ||
| 180 | - const bottleList = await getBottleListByHub(hubList); | 183 | + if(hub.getHub_UserId() !== userId) { |
| 184 | + ctx.status = 403; | ||
| 185 | + return; | ||
| 186 | + } | ||
| 187 | + | ||
| 188 | + const bottleList = await Bottle.find({ hubId }); | ||
| 181 | if(!bottleList || !bottleList.length) { | 189 | if(!bottleList || !bottleList.length) { |
| 182 | ctx.status = 404; | 190 | ctx.status = 404; |
| 183 | return; | 191 | return; |
| ... | @@ -185,17 +193,5 @@ exports.getBottleList = async(ctx) => { | ... | @@ -185,17 +193,5 @@ exports.getBottleList = async(ctx) => { |
| 185 | 193 | ||
| 186 | ctx.status = 200; | 194 | ctx.status = 200; |
| 187 | ctx.body = bottleList; | 195 | ctx.body = bottleList; |
| 188 | -} | 196 | + |
| 189 | - | 197 | +} |
| 190 | -const getBottleListByHub = async (hubList) => { | ||
| 191 | - const result = [] | ||
| 192 | - | ||
| 193 | - for (const hub of hubList) { | ||
| 194 | - const bottle = await Bottle.find({ | ||
| 195 | - hubId : hub.hubId | ||
| 196 | - }); | ||
| 197 | - result.push(...bottle) | ||
| 198 | - } | ||
| 199 | - | ||
| 200 | - return result; | ||
| 201 | -} | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| ... | @@ -36,11 +36,11 @@ bottle.get('/:bottleId', bottleCtrl.lookupInfo); | ... | @@ -36,11 +36,11 @@ bottle.get('/:bottleId', bottleCtrl.lookupInfo); |
| 36 | bottle.patch('/:bottleId', bottleCtrl.setMedicine); | 36 | bottle.patch('/:bottleId', bottleCtrl.setMedicine); |
| 37 | 37 | ||
| 38 | /** | 38 | /** |
| 39 | - * 현재 로그인한 유저의 약병 리스트를 가져옴 | 39 | + * 현재 로그인한 유저의 허브 중, 해당 허브에 등록된 약병 리스트를 가져옴 |
| 40 | * request parameter : x | 40 | * request parameter : x |
| 41 | - * url : http://localhost:4000/api/bottle | 41 | + * url : http://localhost:4000/api/bottle/hub/:hubId |
| 42 | * return : bottle List(json type List) | 42 | * return : bottle List(json type List) |
| 43 | */ | 43 | */ |
| 44 | -bottle.get('/', bottleCtrl.getBottleList) | 44 | +bottle.get('/hub/:hubId', bottleCtrl.getBottleList) |
| 45 | 45 | ||
| 46 | module.exports = bottle; | 46 | module.exports = bottle; |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
-
Please register or login to post a comment