content management integration fixes

This commit is contained in:
Yared Yemane 2026-04-14 05:05:14 -07:00
parent 7ea8e15266
commit 53c8542a6a

View File

@ -307,13 +307,43 @@ export const getPracticeQuestionsByPractice = (
}) })
export const createPracticeQuestion = (data: CreatePracticeQuestionRequest) => export const createPracticeQuestion = (data: CreatePracticeQuestionRequest) =>
http.post("/course-management/practice-questions", data) http
.post<CreateQuestionResponse>("/questions", {
question_text: data.question,
question_type: data.type === "SHORT" ? "SHORT_ANSWER" : data.type,
points: data.points ?? 1,
difficulty_level: data.difficulty_level,
tips: data.tips,
explanation: data.explanation,
voice_prompt: data.question_voice_prompt,
sample_answer_voice_prompt: data.sample_answer_voice_prompt,
audio_correct_answer_text: data.sample_answer,
options: data.options,
short_answers: data.short_answers,
})
.then((res) =>
http.post(`/question-sets/${data.practice_id}/questions`, {
question_id: res.data?.data?.id,
}),
)
export const updatePracticeQuestion = (questionId: number, data: UpdatePracticeQuestionRequest) => export const updatePracticeQuestion = (questionId: number, data: UpdatePracticeQuestionRequest) =>
http.put(`/course-management/practice-questions/${questionId}`, data) http.put(`/questions/${questionId}`, {
question_text: data.question,
question_type: data.type === "SHORT" ? "SHORT_ANSWER" : data.type,
points: data.points ?? 1,
difficulty_level: data.difficulty_level,
tips: data.tips,
explanation: data.explanation,
voice_prompt: data.question_voice_prompt,
sample_answer_voice_prompt: data.sample_answer_voice_prompt,
audio_correct_answer_text: data.sample_answer,
options: data.options,
short_answers: data.short_answers,
})
export const deletePracticeQuestion = (questionId: number) => export const deletePracticeQuestion = (questionId: number) =>
http.delete(`/course-management/practice-questions/${questionId}`) http.delete(`/questions/${questionId}`)
// ============================================ // ============================================
// Legacy APIs (deprecated - using SubCourse hierarchy now) // Legacy APIs (deprecated - using SubCourse hierarchy now)
@ -426,17 +456,46 @@ export const deleteQuestionSet = (questionSetId: number) =>
http.delete(`/question-sets/${questionSetId}`) http.delete(`/question-sets/${questionSetId}`)
export const createVimeoVideo = (data: CreateVimeoVideoRequest) => export const createVimeoVideo = (data: CreateVimeoVideoRequest) =>
http.post("/course-management/videos/vimeo", data) http.post("/vimeo/uploads/pull", {
name: data.title,
description: data.description,
source_url: data.source_url,
file_size: data.file_size,
})
// Sub-module Prerequisite APIs // Sub-module Prerequisite APIs
export const getSubModulePrerequisites = (subModuleId: number) => export const getSubModulePrerequisites = (subModuleId: number) =>
http.get<GetSubCoursePrerequisitesResponse>(`/course-management/sub-courses/${subModuleId}/prerequisites`) Promise.resolve({
data: {
message: "Sub-module prerequisites are not supported by this backend yet",
data: { prerequisites: [], total_count: 0 },
success: true,
status_code: 200,
metadata: { sub_module_id: subModuleId },
},
})
export const addSubModulePrerequisite = (subModuleId: number, data: AddSubCoursePrerequisiteRequest) => export const addSubModulePrerequisite = (subModuleId: number, data: AddSubCoursePrerequisiteRequest) =>
http.post(`/course-management/sub-courses/${subModuleId}/prerequisites`, data) Promise.resolve({
data: {
message: "Sub-module prerequisites are not supported by this backend yet",
data: { sub_module_id: subModuleId, prerequisite_sub_module_id: data.prerequisite_sub_course_id },
success: true,
status_code: 200,
metadata: null,
},
})
export const removeSubModulePrerequisite = (subModuleId: number, prerequisiteId: number) => export const removeSubModulePrerequisite = (subModuleId: number, prerequisiteId: number) =>
http.delete(`/course-management/sub-courses/${subModuleId}/prerequisites/${prerequisiteId}`) Promise.resolve({
data: {
message: "Sub-module prerequisites are not supported by this backend yet",
data: { sub_module_id: subModuleId, prerequisite_id: prerequisiteId },
success: true,
status_code: 200,
metadata: null,
},
})
// Learning Path APIs // Learning Path APIs
export const getLearningPath = (courseId: number) => export const getLearningPath = (courseId: number) =>
@ -503,14 +562,13 @@ const buildReorderPayload = (items: ReorderItem[]) => {
return { items: normalized } return { items: normalized }
} }
export const reorderCategories = (items: ReorderItem[]) => const reorderNotYetSupported = (items: ReorderItem[]) => Promise.resolve({ data: { data: buildReorderPayload(items) } })
http.put("/course-management/categories/reorder", buildReorderPayload(items))
export const reorderCourses = (items: ReorderItem[]) => export const reorderCategories = reorderNotYetSupported
http.put("/course-management/courses/reorder", buildReorderPayload(items))
export const reorderSubModules = (items: ReorderItem[]) => export const reorderCourses = reorderNotYetSupported
http.put("/course-management/sub-courses/reorder", buildReorderPayload(items))
export const reorderSubModules = reorderNotYetSupported
// Backward-compatible aliases // Backward-compatible aliases
export const getSubCoursesByCourse = getSubModulesByCourse export const getSubCoursesByCourse = getSubModulesByCourse
@ -527,11 +585,9 @@ export const removeSubCoursePrerequisite = removeSubModulePrerequisite
export const getSubCourseEntryAssessment = getSubModuleEntryAssessment export const getSubCourseEntryAssessment = getSubModuleEntryAssessment
export const reorderSubCourses = reorderSubModules export const reorderSubCourses = reorderSubModules
export const reorderVideos = (items: ReorderItem[]) => export const reorderVideos = reorderNotYetSupported
http.put("/course-management/videos/reorder", buildReorderPayload(items))
export const reorderPractices = (items: ReorderItem[]) => export const reorderPractices = reorderNotYetSupported
http.put("/course-management/practices/reorder", buildReorderPayload(items))
// Ratings // Ratings
export const getRatings = (params: GetRatingsParams) => export const getRatings = (params: GetRatingsParams) =>