diff --git a/src/repositories/partRepository.js b/src/repositories/partRepository.js index e5553f0ba155db243348af461ad4d36ec684f544..4e453fa900d1ff186583ff4448ae11f0a7531d62 100644 --- a/src/repositories/partRepository.js +++ b/src/repositories/partRepository.js @@ -32,11 +32,12 @@ const PartRepository = { async getFilterDataByTypeAndColumn(type, column) { const query = ` - SELECT DISTINCT ${column} - FROM part_info_${type} - WHERE ${column} IS NOT NULL - ORDER BY ${column} - `; + SELECT DISTINCT p.${column} + FROM relations r + JOIN part_info_${type} p ON r.part_id = p.part_id -- id 대신 part_id 사용 + WHERE p.${column} IS NOT NULL + ORDER BY p.${column} + `; const resp = await pool.query(query); return resp.rows.map((row) => row[column]); }, diff --git a/src/routes/parts.js b/src/routes/parts.js index a6a92875abad53003952973d9847b3efbeabed24..b995962256ae13284f72da104caa89c9ac183a32 100644 --- a/src/routes/parts.js +++ b/src/routes/parts.js @@ -9,9 +9,7 @@ partRouter.get( '/', wrapAsync(async (req, res) => { const { partType, filters } = req.query; - const parts = await PartService.getParts(partType, filters); - return res.sendResponse('', 200, { parts }); }) ); diff --git a/src/services/partService.js b/src/services/partService.js index 2e8d58c9c5f0b8413bdfd189af3e424196e573be..0fa797d00b0ffacff33cdbc4a8364ca6643054ed 100644 --- a/src/services/partService.js +++ b/src/services/partService.js @@ -52,7 +52,7 @@ const PartService = { async getParts(partType, filters) { if (!partType) { - throw new Error('파트 타입이 필요합니다.'); + throw new ReportableError(400, '파트 타입이 필요합니다.'); } let parsedFilters;