Skip to content

Commit

Permalink
refact: move getDefaultInfo api to memberController
Browse files Browse the repository at this point in the history
  • Loading branch information
Ji-soo708 committed Jan 14, 2025
1 parent 0c40557 commit 9ba9ea8
Show file tree
Hide file tree
Showing 8 changed files with 41 additions and 36 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import com.dobby.backend.application.usecase.experiment.*
import com.dobby.backend.application.usecase.experiment.CreateExperimentPostUseCase
import com.dobby.backend.application.usecase.experiment.GetExperimentPostApplyMethodUseCase
import com.dobby.backend.application.usecase.experiment.GetExperimentPostDetailUseCase
import com.dobby.backend.application.usecase.experiment.GetResearcherInfoUseCase
import com.dobby.backend.application.usecase.member.GetResearcherInfoUseCase
import jakarta.transaction.Transactional
import org.springframework.stereotype.Service

Expand All @@ -22,10 +22,6 @@ class ExperimentPostService(
return createExperimentPostUseCase.execute(input)
}

fun getDefaultInfo(input: GetResearcherInfoUseCase.Input): GetResearcherInfoUseCase.Output {
return getResearcherInfoUseCase.execute(input)
}

@Transactional
fun getExperimentPostDetail(input: GetExperimentPostDetailUseCase.Input): GetExperimentPostDetailUseCase.Output {
return getExperimentPostDetailUseCase.execute(input)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.dobby.backend.application.service

import com.dobby.backend.application.usecase.member.GetResearcherInfoUseCase
import com.dobby.backend.application.usecase.member.CreateParticipantUseCase
import com.dobby.backend.application.usecase.member.CreateResearcherUseCase
import com.dobby.backend.application.usecase.member.VerifyResearcherEmailUseCase
Expand All @@ -14,7 +15,8 @@ class MemberService(
private val memberGateway: MemberGateway,
private val createParticipantUseCase: CreateParticipantUseCase,
private val createResearcherUseCase: CreateResearcherUseCase,
private val verifyResearcherEmailUseCase: VerifyResearcherEmailUseCase
private val verifyResearcherEmailUseCase: VerifyResearcherEmailUseCase,
private val getResearcherInfoUseCase: GetResearcherInfoUseCase
) {
@Transactional
fun participantSignup(input: CreateParticipantUseCase.Input): CreateParticipantUseCase.Output {
Expand All @@ -30,4 +32,7 @@ class MemberService(
return createResearcherUseCase.execute(input)
}

fun getDefaultInfo(input: GetResearcherInfoUseCase.Input): GetResearcherInfoUseCase.Output {
return getResearcherInfoUseCase.execute(input)
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.dobby.backend.application.usecase.experiment
package com.dobby.backend.application.usecase.member

import com.dobby.backend.application.usecase.UseCase
import com.dobby.backend.domain.exception.ResearcherNotFoundException
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class WebSecurityConfig {
handlerExceptionResolver: HandlerExceptionResolver
): SecurityFilterChain = httpSecurity
.securityMatcher("/v1/auth/**", "/v1/members/signup/**", "/v1/emails/**",
"/v1/experiment-posts/counts", "/v1/experiment-posts/{postId}/**")
"/v1/experiment-posts/{postId}/**", "/v1/experiment-posts/counts")
.csrf { it.disable() }
.cors(Customizer.withDefaults())
.sessionManagement {
Expand All @@ -35,7 +35,7 @@ class WebSecurityConfig {
.authorizeHttpRequests {
it.requestMatchers("/v1/auth/**").permitAll()
it.requestMatchers("/v1/members/signup/**", "/v1/emails/**",
"/v1/experiment-posts/counts", "/v1/experiment-posts/{postId}/**").permitAll()
"/v1/experiment-posts/{postId}/**", "/v1/experiment-posts/counts").permitAll()
it.anyRequest().authenticated()
}
.build()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,18 +34,6 @@ class ExperimentPostController (
return ExperimentPostMapper.toCreateExperimentPostResponse(output)
}

@PreAuthorize("hasRole('RESEARCHER')")
@GetMapping("/default")
@Operation(
summary = "공고 등록 API- 연구자 기본 정보 렌더링",
description = "연구자의 기본 정보 [학교 + 전공 + 랩실 정보 + 이름]를 반환합니다."
)
fun getDefaultInfo(): DefaultInfoResponse {
val input = ExperimentPostMapper.toDefaultInfoUseCaseInput()
val output = experimentPostService.getDefaultInfo(input)
return ExperimentPostMapper.toDefaultInfoResponse(output)
}

@PostMapping("/{postId}")
@Operation(
summary = "특정 공고 상세 정보 조회 API",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,16 @@ package com.dobby.backend.presentation.api.controller
import com.dobby.backend.application.service.MemberService
import com.dobby.backend.presentation.api.dto.request.signup.ParticipantSignupRequest
import com.dobby.backend.presentation.api.dto.request.signup.ResearcherSignupRequest
import com.dobby.backend.presentation.api.dto.response.expirement.DefaultInfoResponse
import com.dobby.backend.presentation.api.dto.response.member.SignupResponse
import com.dobby.backend.presentation.api.mapper.MemberMapper
import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.tags.Tag
import jakarta.validation.Valid
import org.springframework.security.access.prepost.PreAuthorize
import org.springframework.web.bind.annotation.*

@Tag(name = "회원가입 API - /v1/members/signup")
@Tag(name = "회원 API - /v1/members")
@RestController
@RequestMapping("/v1/members")
class MemberController(
Expand Down Expand Up @@ -44,4 +46,16 @@ class MemberController(
val output = memberService.researcherSignup(input)
return MemberMapper.toResearcherSignupResponse(output)
}

@PreAuthorize("hasRole('RESEARCHER')")
@GetMapping("/default-info/researcher")
@Operation(
summary = "연구자 기본 정보 렌더링",
description = "연구자의 기본 정보 [학교 + 전공 + 랩실 정보 + 이름]를 반환합니다."
)
fun getDefaultInfo(): DefaultInfoResponse {
val input = MemberMapper.toDefaultInfoUseCaseInput()
val output = memberService.getDefaultInfo(input)
return MemberMapper.toDefaultInfoResponse(output)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import com.dobby.backend.application.usecase.experiment.*
import com.dobby.backend.application.usecase.experiment.CreateExperimentPostUseCase
import com.dobby.backend.application.usecase.experiment.GetExperimentPostApplyMethodUseCase
import com.dobby.backend.application.usecase.experiment.GetExperimentPostDetailUseCase
import com.dobby.backend.application.usecase.experiment.GetResearcherInfoUseCase
import com.dobby.backend.presentation.api.dto.request.expirement.CreateExperimentPostRequest
import com.dobby.backend.presentation.api.dto.response.expirement.*
import com.dobby.backend.util.getCurrentMemberId
Expand Down Expand Up @@ -74,19 +73,6 @@ object ExperimentPostMapper {
)
}

fun toDefaultInfoUseCaseInput(): GetResearcherInfoUseCase.Input {
return GetResearcherInfoUseCase.Input(
memberId = getCurrentMemberId()
)
}

fun toDefaultInfoResponse(response: GetResearcherInfoUseCase.Output): DefaultInfoResponse{
return DefaultInfoResponse(
leadResearcher = response.leadResearcher,
univName = response.univName
)
}

fun toGetExperimentPostDetailUseCaseInput(experimentPostId: Long): GetExperimentPostDetailUseCase.Input {
return GetExperimentPostDetailUseCase.Input(
experimentPostId = experimentPostId
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
package com.dobby.backend.presentation.api.mapper

import com.dobby.backend.application.usecase.member.GetResearcherInfoUseCase
import com.dobby.backend.application.usecase.member.CreateResearcherUseCase
import com.dobby.backend.application.usecase.member.CreateParticipantUseCase
import com.dobby.backend.presentation.api.dto.request.signup.ParticipantSignupRequest
import com.dobby.backend.presentation.api.dto.request.signup.ResearcherSignupRequest
import com.dobby.backend.presentation.api.dto.response.expirement.DefaultInfoResponse
import com.dobby.backend.presentation.api.dto.response.member.MemberResponse
import com.dobby.backend.presentation.api.dto.response.member.SignupResponse
import com.dobby.backend.util.getCurrentMemberId

object MemberMapper {
fun toCreateResearcherInput(req: ResearcherSignupRequest) : CreateResearcherUseCase.Input{
Expand Down Expand Up @@ -80,4 +83,17 @@ object MemberMapper {
else -> throw IllegalArgumentException("Unsupported MemberResponse type")
}
}

fun toDefaultInfoUseCaseInput(): GetResearcherInfoUseCase.Input {
return GetResearcherInfoUseCase.Input(
memberId = getCurrentMemberId()
)
}

fun toDefaultInfoResponse(response: GetResearcherInfoUseCase.Output): DefaultInfoResponse {
return DefaultInfoResponse(
leadResearcher = response.leadResearcher,
univName = response.univName
)
}
}

0 comments on commit 9ba9ea8

Please sign in to comment.