diff --git a/Backend/src/controllers/announcementsController.ts b/Backend/src/controllers/announcementsController.ts index eb1d40be..8c5d855d 100644 --- a/Backend/src/controllers/announcementsController.ts +++ b/Backend/src/controllers/announcementsController.ts @@ -193,3 +193,36 @@ export class AnnouncementsController { }); } } + +@Route('api/student/courses/{courseId}/announcements') +@Tags('CoursesStudent') +export class AnnouncementsStudentController { + + /** + * ดึงรายการประกาศของคอร์ส (สำหรับนักเรียน) + * List announcements for a course (for students) + * @param courseId - รหัสคอร์ส / Course ID + * @param page - หน้าที่ต้องการ / Page number + * @param limit - จำนวนต่อหน้า / Items per page + */ + @Get() + @Security('jwt') + @SuccessResponse('200', 'Announcements retrieved successfully') + @Response('401', 'Unauthorized') + @Response('403', 'Forbidden - Not enrolled in this course') + public async listAnnouncements( + @Request() request: any, + @Path() courseId: number, + @Query() page?: number, + @Query() limit?: number + ): Promise { + const token = request.headers.authorization?.replace('Bearer ', ''); + if (!token) throw new ValidationError('No token provided'); + return await announcementsService.listAnnouncement({ + token, + course_id: courseId, + page, + limit, + }); + } +}