your message
This commit is contained in:
@ -254,6 +254,10 @@ class ApiClient {
|
||||
return this.request<any>(`/catalog/${id}/submit`, { method: 'POST' });
|
||||
}
|
||||
|
||||
async checkoutCourse(id: string) {
|
||||
return this.request<{ url: string }>(`/catalog/${id}/checkout`, { method: 'POST' });
|
||||
}
|
||||
|
||||
async toggleCourseVerification(id: string) {
|
||||
return this.request<any>(`/catalog/${id}/verify`, { method: 'PATCH' });
|
||||
}
|
||||
@ -275,10 +279,21 @@ class ApiClient {
|
||||
return this.request<any>(`/enrollment/${courseId}/lessons/${lessonId}/complete`, { method: 'POST' });
|
||||
}
|
||||
|
||||
async submitQuizScore(courseId: string, lessonId: string, score: number) {
|
||||
async submitQuizAnswers(courseId: string, lessonId: string, answers: number[]) {
|
||||
return this.request<any>(`/enrollment/${courseId}/lessons/${lessonId}/quiz`, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify({ score }),
|
||||
body: JSON.stringify({ answers }),
|
||||
});
|
||||
}
|
||||
|
||||
async getLessonHomework(courseId: string, lessonId: string) {
|
||||
return this.request<any>(`/enrollment/${courseId}/lessons/${lessonId}/homework`);
|
||||
}
|
||||
|
||||
async submitLessonHomework(courseId: string, lessonId: string, content: string) {
|
||||
return this.request<any>(`/enrollment/${courseId}/lessons/${lessonId}/homework`, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify({ content }),
|
||||
});
|
||||
}
|
||||
|
||||
@ -305,6 +320,105 @@ class ApiClient {
|
||||
);
|
||||
}
|
||||
|
||||
async reviewHomeworkSubmission(
|
||||
courseId: string,
|
||||
submissionId: string,
|
||||
data: { teacherScore: number; teacherFeedback?: string }
|
||||
) {
|
||||
return this.request<any>(`/courses/${courseId}/homework-submissions/${submissionId}/review`, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify(data),
|
||||
});
|
||||
}
|
||||
|
||||
async getHomeworkSubmissions(courseId: string) {
|
||||
return this.request<any[]>(`/courses/${courseId}/homework-submissions`);
|
||||
}
|
||||
|
||||
// Groups
|
||||
async getDefaultCourseGroup(courseId: string) {
|
||||
return this.request<any>(`/groups/course/${courseId}/default`);
|
||||
}
|
||||
|
||||
async getGroupMessages(groupId: string) {
|
||||
return this.request<any[]>(`/groups/${groupId}/messages`);
|
||||
}
|
||||
|
||||
async getGroupMembers(groupId: string) {
|
||||
return this.request<any[]>(`/groups/${groupId}/members`);
|
||||
}
|
||||
|
||||
async sendGroupMessage(groupId: string, content: string) {
|
||||
return this.request<any>(`/groups/${groupId}/messages`, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify({ content }),
|
||||
});
|
||||
}
|
||||
|
||||
async createGroupInviteLink(groupId: string) {
|
||||
return this.request<{ inviteUrl: string }>(`/groups/${groupId}/invite-link`, {
|
||||
method: 'POST',
|
||||
});
|
||||
}
|
||||
|
||||
async joinGroupByInvite(groupId: string) {
|
||||
return this.request<any>(`/groups/join/${groupId}`, { method: 'POST' });
|
||||
}
|
||||
|
||||
// Support
|
||||
async createSupportTicket(data: { title: string; initialMessage?: string; priority?: string }) {
|
||||
return this.request<any>('/support/tickets', {
|
||||
method: 'POST',
|
||||
body: JSON.stringify(data),
|
||||
});
|
||||
}
|
||||
|
||||
async getMySupportTickets() {
|
||||
return this.request<any[]>('/support/tickets');
|
||||
}
|
||||
|
||||
async getSupportTicketMessages(id: string) {
|
||||
return this.request<any[]>(`/support/tickets/${id}/messages`);
|
||||
}
|
||||
|
||||
async sendSupportMessage(id: string, content: string) {
|
||||
return this.request<any>(`/support/tickets/${id}/messages`, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify({ content }),
|
||||
});
|
||||
}
|
||||
|
||||
async getAdminSupportTickets() {
|
||||
return this.request<any[]>('/support/admin/tickets');
|
||||
}
|
||||
|
||||
async getAdminSupportTicketMessages(id: string) {
|
||||
return this.request<any[]>(`/support/admin/tickets/${id}/messages`);
|
||||
}
|
||||
|
||||
async sendAdminSupportMessage(id: string, content: string) {
|
||||
return this.request<any>(`/support/admin/tickets/${id}/messages`, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify({ content }),
|
||||
});
|
||||
}
|
||||
|
||||
async updateAdminSupportTicketStatus(id: string, status: string) {
|
||||
return this.request<any>(`/support/admin/tickets/${id}/status`, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify({ status }),
|
||||
});
|
||||
}
|
||||
|
||||
// Moderation reviews
|
||||
async hideReview(reviewId: string) {
|
||||
return this.request<any>(`/moderation/reviews/${reviewId}/hide`, { method: 'POST' });
|
||||
}
|
||||
|
||||
async unhideReview(reviewId: string) {
|
||||
return this.request<any>(`/moderation/reviews/${reviewId}/unhide`, { method: 'POST' });
|
||||
}
|
||||
|
||||
// Search
|
||||
async searchCourses(query: string, filters?: { category?: string; difficulty?: string }) {
|
||||
const searchParams = new URLSearchParams({ q: query });
|
||||
|
||||
Reference in New Issue
Block a user