feat: add new pages for course discovery, course details, classroom activities, user dashboard, password reset, and internationalization support.
This commit is contained in:
parent
7ac1a5af0a
commit
4c9b6b0f3f
10 changed files with 570 additions and 175 deletions
|
|
@ -506,9 +506,11 @@ export const useCourse = () => {
|
|||
|
||||
// ฟังก์ชันส่งคำตอบ Quiz
|
||||
// Endpoint: POST /students/courses/:cid/lessons/:lid/quiz/submit
|
||||
const submitQuiz = async (courseId: number, lessonId: number, answers: QuizAnswerSubmission[]) => {
|
||||
const submitQuiz = async (courseId: number, lessonId: number, answers: QuizAnswerSubmission[], alreadyPassed: boolean = false) => {
|
||||
try {
|
||||
const body: QuizSubmitRequest = { answers }
|
||||
// NOTE: Backend crashes with 500 if we send extra fields like 'already_passed'.
|
||||
// Reverting to strict body structure.
|
||||
const body = { answers }
|
||||
|
||||
const data = await $fetch<{ code: number; message: string; data: QuizResult }>(`${API_BASE_URL}/students/courses/${courseId}/lessons/${lessonId}/quiz/submit`, {
|
||||
method: 'POST',
|
||||
|
|
@ -587,6 +589,32 @@ export const useCourse = () => {
|
|||
}
|
||||
}
|
||||
|
||||
// ฟังก์ชันดึงประกาศของคอร์ส (Announcements)
|
||||
// Endpoint: GET /student/courses/:id/announcements (Note: 'student' singular based on recent API update)
|
||||
const fetchCourseAnnouncements = async (courseId: number) => {
|
||||
try {
|
||||
const data = await $fetch<{ code: number; message: string; data: any[] }>(`${API_BASE_URL}/student/courses/${courseId}/announcements`, {
|
||||
method: 'GET',
|
||||
headers: token.value ? {
|
||||
Authorization: `Bearer ${token.value}`
|
||||
} : {}
|
||||
})
|
||||
|
||||
return {
|
||||
success: true,
|
||||
data: data.data
|
||||
}
|
||||
} catch (err: any) {
|
||||
console.error('Fetch course announcements failed:', err)
|
||||
return {
|
||||
success: false,
|
||||
error: err.data?.message || err.message || 'Error fetching announcements',
|
||||
code: err.data?.code,
|
||||
status: err.status
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
fetchCourses,
|
||||
fetchCourseById,
|
||||
|
|
@ -600,7 +628,8 @@ export const useCourse = () => {
|
|||
markLessonComplete,
|
||||
submitQuiz,
|
||||
generateCertificate,
|
||||
getCertificate
|
||||
getCertificate,
|
||||
fetchCourseAnnouncements
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue