diff --git a/src/main/kotlin/com/wafflestudio/csereal/core/member/database/ProfessorEntity.kt b/src/main/kotlin/com/wafflestudio/csereal/core/member/database/ProfessorEntity.kt index b1c80c43..00b46019 100644 --- a/src/main/kotlin/com/wafflestudio/csereal/core/member/database/ProfessorEntity.kt +++ b/src/main/kotlin/com/wafflestudio/csereal/core/member/database/ProfessorEntity.kt @@ -2,6 +2,7 @@ package com.wafflestudio.csereal.core.member.database import com.wafflestudio.csereal.common.config.BaseTimeEntity import com.wafflestudio.csereal.common.controller.MainImageContentEntityType +import com.wafflestudio.csereal.common.properties.LanguageType import com.wafflestudio.csereal.core.member.dto.ProfessorDto import com.wafflestudio.csereal.core.research.database.LabEntity import com.wafflestudio.csereal.core.resource.mainImage.database.MainImageEntity @@ -10,6 +11,8 @@ import java.time.LocalDate @Entity(name = "professor") class ProfessorEntity( + @Enumerated(EnumType.STRING) + var language: LanguageType, var name: String, @@ -49,8 +52,9 @@ class ProfessorEntity( override fun bringMainImage(): MainImageEntity? = mainImage companion object { - fun of(professorDto: ProfessorDto): ProfessorEntity { + fun of(languageType: LanguageType, professorDto: ProfessorDto): ProfessorEntity { return ProfessorEntity( + language = languageType, name = professorDto.name, status = professorDto.status, academicRank = professorDto.academicRank, diff --git a/src/main/kotlin/com/wafflestudio/csereal/core/member/dto/ProfessorDto.kt b/src/main/kotlin/com/wafflestudio/csereal/core/member/dto/ProfessorDto.kt index 90bf7f47..072db7e1 100644 --- a/src/main/kotlin/com/wafflestudio/csereal/core/member/dto/ProfessorDto.kt +++ b/src/main/kotlin/com/wafflestudio/csereal/core/member/dto/ProfessorDto.kt @@ -1,6 +1,7 @@ package com.wafflestudio.csereal.core.member.dto import com.fasterxml.jackson.annotation.JsonInclude +import com.wafflestudio.csereal.common.properties.LanguageType import com.wafflestudio.csereal.core.member.database.ProfessorEntity import com.wafflestudio.csereal.core.member.database.ProfessorStatus import java.time.LocalDate @@ -8,6 +9,7 @@ import java.time.LocalDate data class ProfessorDto( @JsonInclude(JsonInclude.Include.NON_NULL) var id: Long? = null, + val language: String, val name: String, val status: ProfessorStatus, val academicRank: String, @@ -31,6 +33,7 @@ data class ProfessorDto( fun of(professorEntity: ProfessorEntity, imageURL: String?): ProfessorDto { return ProfessorDto( id = professorEntity.id, + language = LanguageType.makeLowercase(professorEntity.language), name = professorEntity.name, status = professorEntity.status, academicRank = professorEntity.academicRank, diff --git a/src/main/kotlin/com/wafflestudio/csereal/core/member/service/ProfessorService.kt b/src/main/kotlin/com/wafflestudio/csereal/core/member/service/ProfessorService.kt index ebc22b35..a0eb66fa 100644 --- a/src/main/kotlin/com/wafflestudio/csereal/core/member/service/ProfessorService.kt +++ b/src/main/kotlin/com/wafflestudio/csereal/core/member/service/ProfessorService.kt @@ -1,6 +1,7 @@ package com.wafflestudio.csereal.core.member.service import com.wafflestudio.csereal.common.CserealException +import com.wafflestudio.csereal.common.properties.LanguageType import com.wafflestudio.csereal.core.member.database.* import com.wafflestudio.csereal.core.member.dto.ProfessorDto import com.wafflestudio.csereal.core.member.dto.ProfessorPageDto @@ -40,7 +41,8 @@ class ProfessorServiceImpl( private val applicationEventPublisher: ApplicationEventPublisher ) : ProfessorService { override fun createProfessor(createProfessorRequest: ProfessorDto, mainImage: MultipartFile?): ProfessorDto { - val professor = ProfessorEntity.of(createProfessorRequest) + val enumLanguageType = LanguageType.makeStringToLanguageType(createProfessorRequest.language) + val professor = ProfessorEntity.of(enumLanguageType, createProfessorRequest) if (createProfessorRequest.labId != null) { val lab = labRepository.findByIdOrNull(createProfessorRequest.labId) ?: throw CserealException.Csereal404("해당 연구실을 찾을 수 없습니다. LabId: ${createProfessorRequest.labId}") @@ -199,7 +201,8 @@ class ProfessorServiceImpl( val list = mutableListOf() for (request in requestList) { - val professor = ProfessorEntity.of(request) + val enumLanguageType = LanguageType.makeStringToLanguageType(request.language) + val professor = ProfessorEntity.of(enumLanguageType, request) if (request.labName != null) { val lab = labRepository.findByName(request.labName) ?: throw CserealException.Csereal404("해당 연구실을 찾을 수 없습니다. LabName: ${request.labName}") diff --git a/src/test/kotlin/com/wafflestudio/csereal/core/member/service/ProfessorServiceTest.kt b/src/test/kotlin/com/wafflestudio/csereal/core/member/service/ProfessorServiceTest.kt index b3a8b144..bbb1e43c 100644 --- a/src/test/kotlin/com/wafflestudio/csereal/core/member/service/ProfessorServiceTest.kt +++ b/src/test/kotlin/com/wafflestudio/csereal/core/member/service/ProfessorServiceTest.kt @@ -54,6 +54,7 @@ class ProfessorServiceTest( labEntity = labRepository.save(labEntity) val professorDto = ProfessorDto( + language = "ko", name = "name", email = "email", status = ProfessorStatus.ACTIVE, @@ -162,6 +163,7 @@ class ProfessorServiceTest( val createdProfessorDto = professorService.createProfessor( ProfessorDto( + language = "ko", name = "name", email = "email", status = ProfessorStatus.ACTIVE, diff --git a/src/test/kotlin/com/wafflestudio/csereal/core/reseach/service/ResearchSearchServiceTest.kt b/src/test/kotlin/com/wafflestudio/csereal/core/reseach/service/ResearchSearchServiceTest.kt index 032743ba..031ec07a 100644 --- a/src/test/kotlin/com/wafflestudio/csereal/core/reseach/service/ResearchSearchServiceTest.kt +++ b/src/test/kotlin/com/wafflestudio/csereal/core/reseach/service/ResearchSearchServiceTest.kt @@ -47,6 +47,7 @@ class ResearchSearchServiceTest( // Save professors val professor1Dto = professorService.createProfessor( createProfessorRequest = ProfessorDto( + language = "ko", name = "professor1", email = null, status = ProfessorStatus.ACTIVE, @@ -67,6 +68,7 @@ class ResearchSearchServiceTest( ) val professor2Dto = professorService.createProfessor( createProfessorRequest = ProfessorDto( + language = "ko", name = "professor2", email = null, status = ProfessorStatus.ACTIVE, @@ -160,6 +162,7 @@ class ResearchSearchServiceTest( When("professor가 추가된다면") { val process3CreatedDto = professorService.createProfessor( createProfessorRequest = ProfessorDto( + language = "ko", name = "newProfessor", email = "email", status = ProfessorStatus.ACTIVE, diff --git a/src/test/kotlin/com/wafflestudio/csereal/core/reseach/service/ResearchServiceTest.kt b/src/test/kotlin/com/wafflestudio/csereal/core/reseach/service/ResearchServiceTest.kt index 468372f1..df6eb464 100644 --- a/src/test/kotlin/com/wafflestudio/csereal/core/reseach/service/ResearchServiceTest.kt +++ b/src/test/kotlin/com/wafflestudio/csereal/core/reseach/service/ResearchServiceTest.kt @@ -1,5 +1,6 @@ package com.wafflestudio.csereal.core.reseach.service +import com.wafflestudio.csereal.common.properties.LanguageType import com.wafflestudio.csereal.core.member.database.ProfessorEntity import com.wafflestudio.csereal.core.member.database.ProfessorRepository import com.wafflestudio.csereal.core.member.database.ProfessorStatus @@ -156,6 +157,7 @@ class ResearchServiceTest( // Save professors val professor1 = professorRepository.save( ProfessorEntity( + language = LanguageType.KO, name = "professor1", status = ProfessorStatus.ACTIVE, academicRank = "professor", @@ -170,6 +172,7 @@ class ResearchServiceTest( ) val professor2 = professorRepository.save( ProfessorEntity( + language = LanguageType.KO, name = "professor2", status = ProfessorStatus.ACTIVE, academicRank = "professor", @@ -258,6 +261,7 @@ class ResearchServiceTest( // Save professors val professor1 = professorRepository.save( ProfessorEntity( + language = LanguageType.KO, name = "professor1", status = ProfessorStatus.ACTIVE, academicRank = "professor", @@ -272,6 +276,7 @@ class ResearchServiceTest( ) val professor2 = professorRepository.save( ProfessorEntity( + language = LanguageType.KO, name = "professor2", status = ProfessorStatus.ACTIVE, academicRank = "professor", @@ -318,6 +323,7 @@ class ResearchServiceTest( When("pdf를 제외하고 Lab을 수정한다면") { val professor3 = professorRepository.save( ProfessorEntity( + language = LanguageType.KO, name = "professor3", status = ProfessorStatus.ACTIVE, academicRank = "professor",