Skip to content

Commit fd88120

Browse files
committed
feature/api-event-in-cameras
เพิ่ม API Event In Cameras เพื่อแสดงรายการกล้องทั้งหมดที่ตรวจพบเหตุการณ์
1 parent c799ef7 commit fd88120

File tree

3 files changed

+48
-2
lines changed

3 files changed

+48
-2
lines changed

server/src/controllers/events.controller.ts

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,5 +236,27 @@ export async function updateGlobalEvent(req: Request, res: Response, next: NextF
236236
} catch (err) {
237237
next(err);
238238
}
239+
};
240+
241+
/**
242+
* ดึงรายการกล้องทั้งหมดที่ตรวจพบเหตุการณ์ตามรหัสที่ระบุ
243+
*
244+
* @param {Request} req - Express Request ที่มี event_id ใน params
245+
* @param {Response} res - Express Response
246+
* @param {NextFunction} next - ฟังก์ชันส่งต่อข้อผิดพลาดให้ middleware ถัดไป
247+
* @returns {Promise<Response>} ข้อมูลรายการกล้องที่ตรวจพบเหตุการณ์
248+
* @throws {Error} หากเกิดข้อผิดพลาดในการดึงข้อมูล
249+
*
250+
* @author Wongsakon
251+
* @lastModified 2025-12-04
252+
*/
253+
export async function getEventInCamerasById(req: Request, res: Response, next: NextFunction) {
254+
try {
255+
const event_id = Number(req.params.evt_id);
239256

240-
}
257+
const event = await EventService.getEventInCamerasById(event_id);
258+
return res.status(200).json({ message: 'Fetched successfully', data: event });
259+
} catch (err) {
260+
next(err);
261+
}
262+
};

server/src/routes/events.routes.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ router.put("/:evt_id/global", ctrl.updateGlobalEvent);
3737
/* ========================== Events ========================== */
3838
router.get("/", ctrl.getEvents);
3939
router.post("/", ctrl.createEvent);
40+
router.get('/:evt_id/event-in-cameras', ctrl.getEventInCamerasById);
4041
router.get("/:evt_id", ctrl.getEventById);
4142
router.put("/:evt_id", ctrl.updateEvent);
4243
router.patch("/:evt_id", ctrl.softDeleteEvent);

server/src/services/events.service.ts

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -313,4 +313,27 @@ export async function updateGlobalEvent(
313313
);
314314

315315
return Mapping.mapGlobalEventsToSaveResponse(rows[0]);
316-
}
316+
}
317+
318+
/**
319+
* ดึงรายการข้อมูลกล้องทั้งหมดที่ตรวจพบเหตุการณ์ (event_id) ที่ระบุ
320+
* ข้อมูลที่ได้รวมรายละเอียดของเหตุการณ์และกล้องที่ตรวจพบเข้าไว้ด้วยกัน
321+
*
322+
* @param {number} event_id - รหัสเหตุการณ์ที่ต้องการดึง
323+
* @returns {Promise<Model.EventInCameras>} รายการกล้องที่ตรวจพบเหตุการณ์ที่กำหนด (หรือรายการว่างหากไม่พบ)
324+
* @throws {Error} หากเกิดข้อผิดพลาดระหว่างการดึงข้อมูลจากฐานข้อมูล
325+
*
326+
* @author Wongsakon
327+
* @lastModified 2025-12-04
328+
*/
329+
export async function getEventInCamerasById(event_id: number) {
330+
const { rows } = await pool.query(
331+
`
332+
SELECT * FROM v_events_in_cameras
333+
WHERE event_id = $1;
334+
`,
335+
[event_id]
336+
);
337+
338+
return rows;
339+
};

0 commit comments

Comments
 (0)