feat: add useCourse composable with functions for fetching, enrolling, and managing course data.
This commit is contained in:
parent
36593bc4f1
commit
06ff2c0d9f
1 changed files with 51 additions and 1 deletions
|
|
@ -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 {
|
||||
fetchCourses,
|
||||
fetchCourseById,
|
||||
enrollCourse,
|
||||
fetchEnrolledCourses
|
||||
fetchEnrolledCourses,
|
||||
fetchCourseLearningInfo,
|
||||
fetchLessonContent
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue