From dc9b7f9d125231b33eb55b0bde92aac4feba6b8b Mon Sep 17 00:00:00 2001 From: Yared Yemane Date: Thu, 16 Apr 2026 02:59:45 -0700 Subject: [PATCH] use lesson detail endpoint for human language edits Load human language lesson edit data from the dedicated sub-module lesson detail API so lesson metadata stays aligned with the backend response shape. Made-with: Cursor --- src/api/courses.api.ts | 4 ++++ .../content-management/HumanLanguagePage.tsx | 3 ++- src/types/course.types.ts | 22 +++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/api/courses.api.ts b/src/api/courses.api.ts index 5d5d9d6..58fa444 100644 --- a/src/api/courses.api.ts +++ b/src/api/courses.api.ts @@ -47,6 +47,7 @@ import type { GetSubCoursePrerequisitesResponse, AddSubCoursePrerequisiteRequest, GetLearningPathResponse, + GetSubModuleLessonDetailResponse, GetHumanLanguageLessonsResponse, GetHumanLanguageHierarchyResponse, CreateHumanLanguageLessonRequest, @@ -298,6 +299,9 @@ export const deleteSubModule = (subModuleId: number) => export const getVideosBySubModule = (subModuleId: number) => http.get(`/course-management/sub-modules/${subModuleId}/videos`) +export const getSubModuleLessonById = (lessonId: number) => + http.get(`/course-management/sub-module-lessons/${lessonId}`) + export const createSubCourseVideo = (data: CreateSubCourseVideoRequest) => http.post("/course-management/sub-module-videos", { sub_module_id: data.sub_module_id ?? data.sub_course_id, diff --git a/src/pages/content-management/HumanLanguagePage.tsx b/src/pages/content-management/HumanLanguagePage.tsx index 8ae4dc7..bb50645 100644 --- a/src/pages/content-management/HumanLanguagePage.tsx +++ b/src/pages/content-management/HumanLanguagePage.tsx @@ -47,6 +47,7 @@ import { getPracticeQuestions, getPracticeQuestionsByPractice, getQuestionSetById, + getSubModuleLessonById, updateQuestionSet, updateQuestion, } from "../../api/courses.api" @@ -941,7 +942,7 @@ export function HumanLanguagePage() { setLessonDialog({ open: true, lessonId: lesson.id, questionSetId: lesson.question_set_id }) setSavingLesson(false) try { - const detail = (await getQuestionSetById(lesson.question_set_id)).data?.data + const detail = (await getSubModuleLessonById(lesson.id)).data?.data setLessonForm({ title: detail?.title ?? lesson.title ?? "", description: detail?.description ?? "", diff --git a/src/types/course.types.ts b/src/types/course.types.ts index 25aafcc..e70453b 100644 --- a/src/types/course.types.ts +++ b/src/types/course.types.ts @@ -702,6 +702,28 @@ export interface HumanLanguageLesson { practices: LearningPathPractice[] } +export interface SubModuleLessonDetail { + id: number + sub_module_id: number + question_set_id: number + intro_video_url?: string | null + display_order: number + is_active: boolean + title: string + description?: string | null + status: string + set_type: string + question_count: number +} + +export interface GetSubModuleLessonDetailResponse { + message: string + data: SubModuleLessonDetail + success: boolean + status_code: number + metadata: unknown +} + export interface GetHumanLanguageLessonsResponse { message: string data: {