feat: Implement instructor module with course management pages and API services.

This commit is contained in:
Missez 2026-01-29 09:47:43 +07:00
parent 07ab43a785
commit a24f8c4982
6 changed files with 135 additions and 27 deletions

View file

@ -44,6 +44,7 @@ export interface LoginResponse {
firstName: string;
lastName: string;
role: string;
avatarUrl?: string | null;
};
}
@ -132,7 +133,8 @@ export const authService = {
email: response.user.email,
firstName: response.user.profile.first_name,
lastName: response.user.profile.last_name,
role: response.user.role.code
role: response.user.role.code,
avatarUrl: response.user.profile.avatar_url
}
};
} catch (error: any) {

View file

@ -225,6 +225,25 @@ export const instructorService = {
return response.data;
},
async uploadCourseThumbnail(courseId: number, file: File): Promise<{ thumbnail_url: string }> {
const config = useRuntimeConfig();
const useMockData = config.public.useMockData as boolean;
if (useMockData) {
await new Promise(resolve => setTimeout(resolve, 500));
return { thumbnail_url: URL.createObjectURL(file) };
}
const formData = new FormData();
formData.append('file', file);
const response = await authRequest<{ code: number; data: { thumbnail_url: string } }>(
`/api/instructors/courses/${courseId}/thumbnail`,
{ method: 'POST', body: formData }
);
return response.data;
},
async deleteCourse(courseId: number): Promise<void> {
const config = useRuntimeConfig();
const useMockData = config.public.useMockData as boolean;