diff --git a/frontend/src/components/CommentModal.tsx b/frontend/src/components/CommentModal.tsx index c5ed35c..6090eee 100644 --- a/frontend/src/components/CommentModal.tsx +++ b/frontend/src/components/CommentModal.tsx @@ -28,7 +28,7 @@ import CommentSubmitForm, { } from './CommentSubmitForm'; import { SubjectRepository } from 'temp/SubjectRepository'; import SubjectCommentList from './SubjectCommentList'; -import { SubjectCommentRepository } from 'temp/SubjectCommentRepository'; +import { SubjectCommentRepository } from 'repositories/SubjectCommentRepository'; import { TeacherCommentRepository } from 'temp/TeacherCommentRepository'; import { EditRequestRepository } from 'temp/EditRequestRepository'; import { UserRepository } from 'repositories/UserRepository'; diff --git a/frontend/src/components/SubjectCommentList.tsx b/frontend/src/components/SubjectCommentList.tsx index 9e102e3..06c44da 100644 --- a/frontend/src/components/SubjectCommentList.tsx +++ b/frontend/src/components/SubjectCommentList.tsx @@ -12,10 +12,8 @@ import { import { DeleteIcon } from '@chakra-ui/icons'; -import { - SubjectComment, - SubjectCommentRepository, -} from 'temp/SubjectCommentRepository'; +import { SubjectCommentRepository } from 'repositories/SubjectCommentRepository'; +import { SubjectComment } from 'domains'; export type SubjectCommentListProps = { subjectUuid: string; diff --git a/frontend/src/domains/entities/SubjetComment.ts b/frontend/src/domains/entities/SubjetComment.ts index 88436dd..6b538e0 100644 --- a/frontend/src/domains/entities/SubjetComment.ts +++ b/frontend/src/domains/entities/SubjetComment.ts @@ -1,10 +1,10 @@ -import { Subject, User } from '..'; +import { ReductionUser, Subject } from '..'; export class SubjectComment { constructor( public uuid: string, public subject: Subject, - public user: User, + public user: ReductionUser, public comment: string, ) {} } diff --git a/frontend/src/domains/factories/SubjectCommentFactory.ts b/frontend/src/domains/factories/SubjectCommentFactory.ts index 52781d2..1c24681 100644 --- a/frontend/src/domains/factories/SubjectCommentFactory.ts +++ b/frontend/src/domains/factories/SubjectCommentFactory.ts @@ -1,10 +1,15 @@ -import { SubjectFactory, SubjectResponse, UserFactory, UserResponse } from '..'; +import { + ReductionUserFactory, + ReductionUserResponse, + SubjectFactory, + SubjectResponse, +} from '..'; import { SubjectComment } from '../entities/SubjetComment'; export interface SubjectCommentResponse { uuid: string; subject: SubjectResponse; - user: UserResponse; + user: ReductionUserResponse; comment: string; } @@ -13,7 +18,7 @@ export class SubjectCommentFactory { return new SubjectComment( res.uuid, SubjectFactory.createFromResponse(res.subject), - UserFactory.createFromResponse(res.user), + ReductionUserFactory.createFromResponse(res.user), res.comment, ); } diff --git a/frontend/src/temp/SubjectCommentRepository.ts b/frontend/src/repositories/SubjectCommentRepository.ts similarity index 54% rename from frontend/src/temp/SubjectCommentRepository.ts rename to frontend/src/repositories/SubjectCommentRepository.ts index b840ba7..ce1fa39 100644 --- a/frontend/src/temp/SubjectCommentRepository.ts +++ b/frontend/src/repositories/SubjectCommentRepository.ts @@ -1,42 +1,5 @@ import { authClient } from 'infras/RestClient'; - -export interface SubjectComment { - comment: string; - uuid: string; - subject: { - name: string; - credits: number; - syllabus_url: string; - category: string; - type: string; - target_grade: number; - uuid: string; - term: { - academic_year: number; - semester: string; - uuid: string; - }; - teacher: { - name: string; - uuid: string; - }; - school: { - name: string; - syllabus_url: string; - uuid: string; - }; - department: { - name: string; - syllabus_url: string; - uuid: string; - }; - }; - user: { - username: string; - grade: number; - uuid: string; - }; -} +import { SubjectCommentResponse, SubjectCommentFactory } from 'domains'; export interface CreateSubjectCommentRequest { comment: string; @@ -52,19 +15,19 @@ export class SubjectCommentRepository { static async getsBySubject(subjectUuid: string) { const authClientObject = authClient(); if (!authClientObject) return; - const res = await authClientObject.get( + const res = await authClientObject.get( `/api/v1/subjects_comments?subject_uuid=${subjectUuid}`, ); - return res.data; + return res.data.map(SubjectCommentFactory.createFromResponse); } static async create(data: CreateSubjectCommentRequest) { const authClientObject = authClient(); if (!authClientObject) return; const res = await authClientObject.post< CreateSubjectCommentRequest, - SubjectComment + SubjectCommentResponse >(`/api/v1/subjects_comments`, data); - return res.data; + return SubjectCommentFactory.createFromResponse(res.data); } static async delete(uuid: string) { @@ -73,6 +36,6 @@ export class SubjectCommentRepository { const res = await authClientObject.delete( `/api/v1/subjects_comments/${uuid}`, ); - return res.data; + return SubjectCommentFactory.createFromResponse(res.data); } }