From 5911cdf8a83b81538cbffbbef4b43eb4e30004b6 Mon Sep 17 00:00:00 2001 From: Primakov Alexandr Alexandrovich Date: Thu, 29 Aug 2024 09:55:05 +0300 Subject: [PATCH] link 2 exam --- src/__data__/api/api.ts | 29 ++++---- src/pages/course-list/course-details.tsx | 14 +++- src/pages/course-list/course-list.tsx | 2 +- stubs/api/index.js | 14 +++- stubs/mocks/courses/by-id/with-exam.json | 94 ++++++++++++++++++++++++ stubs/mocks/courses/list/success.json | 5 +- 6 files changed, 137 insertions(+), 21 deletions(-) create mode 100644 stubs/mocks/courses/by-id/with-exam.json diff --git a/src/__data__/api/api.ts b/src/__data__/api/api.ts index 5fdbbc8..2319861 100644 --- a/src/__data__/api/api.ts +++ b/src/__data__/api/api.ts @@ -21,9 +21,9 @@ export const api = createApi({ init?: RequestInit | undefined, ) => { const response = await fetch(input, init) - + if (response.status === 403) keycloak.login() - + return response }, headers: { @@ -40,8 +40,8 @@ export const api = createApi({ providesTags: ['CourseList'], }), createUpdateCourse: builder.mutation< - BaseResponse, - Partial & Pick + BaseResponse, + Partial & Pick >({ query: (course) => ({ url: '/course', @@ -54,8 +54,8 @@ export const api = createApi({ query: (courseId) => `/course/students/${courseId}`, }), manualAddStudent: builder.mutation< - BaseResponse, - { lessonId: string; user: User } + BaseResponse, + { lessonId: string; user: User } >({ query: ({ lessonId, user }) => ({ url: `/lesson/add-student/${lessonId}`, @@ -63,14 +63,14 @@ export const api = createApi({ body: user, }), }), - + lessonList: builder.query, string>({ query: (courseId) => `/lesson/list/${courseId}`, providesTags: ['LessonList'], }), createLesson: builder.mutation< - BaseResponse, - Partial & Pick & { courseId: string } + BaseResponse, + Partial & Pick & { courseId: string } >({ query: (data) => ({ url: '/lesson', @@ -97,10 +97,10 @@ export const api = createApi({ lessonById: builder.query, string>({ query: (lessonId: string) => `/lesson/${lessonId}`, }), - + createAccessCode: builder.query< - BaseResponse, - { lessonId: string } + BaseResponse, + { lessonId: string } >({ query: ({ lessonId }) => ({ url: '/lesson/access-code', @@ -109,8 +109,8 @@ export const api = createApi({ }), }), getAccess: builder.query< - BaseResponse<{ user: UserData; accessCode: AccessCode }>, - { accessCode: string } + BaseResponse<{ user: UserData; accessCode: AccessCode }>, + { accessCode: string } >({ query: ({ accessCode }) => ({ url: `/lesson/access-code/${accessCode}`, @@ -126,6 +126,7 @@ export const api = createApi({ query: (courseId) => ({ url: `/course/toggle-exam-with-jury/${courseId}`, method: 'POST', + body: {}, }), invalidatesTags: ['Course'] }) diff --git a/src/pages/course-list/course-details.tsx b/src/pages/course-list/course-details.tsx index afe86ce..735d2b5 100644 --- a/src/pages/course-list/course-details.tsx +++ b/src/pages/course-list/course-details.tsx @@ -15,6 +15,7 @@ import { useAppSelector } from '../../__data__/store' import { isTeacher } from '../../utils/user' import { PopulatedCourse } from '../../__data__/model' import { api } from '../../__data__/api/api' +import { LinkIcon } from '@chakra-ui/icons' type CourseDetailsProps = { populatedCourse: PopulatedCourse; @@ -28,7 +29,16 @@ export const CourseDetails = ({ populatedCourse }: CourseDetailsProps) => { return ( <> - Экзамен: + Экзамен: {exam?.name} {exam && + + } {!Boolean(exam) && ( <> @@ -36,7 +46,7 @@ export const CourseDetails = ({ populatedCourse }: CourseDetailsProps) => { Не задан - +