feat: add useCourse composable with functions for fetching, enrolling, and managing course data.

This commit is contained in:
supalerk-ar66 2026-01-20 15:25:18 +07:00
parent 36593bc4f1
commit 06ff2c0d9f

View file

@ -163,11 +163,61 @@ export const useCourse = () => {
} }
} }
const fetchCourseLearningInfo = async (courseId: number) => {
try {
const data = await $fetch<{ code: number; message: string; data: any }>(`${API_BASE_URL}/students/courses/${courseId}/learn`, {
method: 'GET',
headers: token.value ? {
Authorization: `Bearer ${token.value}`
} : {}
})
return {
success: true,
data: data.data
}
} catch (err: any) {
console.error('Fetch course learning info failed:', err)
return {
success: false,
error: err.data?.message || err.message || 'Error fetching course learning info',
code: err.data?.code
}
}
}
const fetchLessonContent = async (courseId: number, lessonId: number) => {
try {
const data = await $fetch<{ code: number; message: string; data: any; progress?: any }>(`${API_BASE_URL}/students/courses/${courseId}/lessons/${lessonId}`, {
method: 'GET',
headers: token.value ? {
Authorization: `Bearer ${token.value}`
} : {}
})
return {
success: true,
data: data.data,
progress: data.progress
}
} catch (err: any) {
console.error('Fetch lesson content failed:', err)
return {
success: false,
error: err.data?.message || err.message || 'Error fetching lesson content',
code: err.data?.code,
status: err.status
}
}
}
return { return {
fetchCourses, fetchCourses,
fetchCourseById, fetchCourseById,
enrollCourse, enrollCourse,
fetchEnrolledCourses fetchEnrolledCourses,
fetchCourseLearningInfo,
fetchLessonContent
} }
} }