Skip to content

Commit

Permalink
refactor: 응답 DTO 리스트 형식 변환
Browse files Browse the repository at this point in the history
  • Loading branch information
whereami2048 committed May 20, 2024
1 parent 9d760a9 commit 40cffe1
Show file tree
Hide file tree
Showing 4 changed files with 126 additions and 114 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,12 @@ package com.bamyanggang.apimodule.domain.experience.application.dto
import java.time.LocalDateTime
import java.util.*

class DetailExperience {
class GetExperience {
data class Response(
val experiences: List<DetailExperience>
)

data class DetailExperience(
val id: UUID,
val title: String,
val parentTag: DetailTag,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.bamyanggang.apimodule.domain.experience.application.service

import com.bamyanggang.apimodule.common.getAuthenticationPrincipal
import com.bamyanggang.apimodule.domain.experience.application.dto.DetailExperience
import com.bamyanggang.apimodule.domain.experience.application.dto.ExperienceYear
import com.bamyanggang.apimodule.domain.experience.application.dto.GetExperience
import com.bamyanggang.domainmodule.domain.experience.aggregate.Experience
import com.bamyanggang.domainmodule.domain.experience.service.ExperienceReader
import com.bamyanggang.domainmodule.domain.strongpoint.service.StrongPointReader
Expand All @@ -16,7 +16,7 @@ class ExperienceGetService(
private val strongPointReader: StrongPointReader,
private val tagReader: TagReader,
) {
fun getExperienceDetailById(experienceId: UUID) : DetailExperience.Response {
fun getExperienceDetailById(experienceId: UUID) : GetExperience.DetailExperience {
val oneExperience = experienceReader.readExperience(experienceId)
return createExperienceDetailResponse(oneExperience)
}
Expand All @@ -28,25 +28,29 @@ class ExperienceGetService(
.let { ExperienceYear.Response(it) }
}

fun getExperienceByYearAndParentTag(year: Int, parentTagId: UUID): List<DetailExperience.Response> {
return experienceReader.readByYearAndParentTagId(year, parentTagId).map {
fun getExperienceByYearAndParentTag(year: Int, parentTagId: UUID): GetExperience.Response {
val experiences = experienceReader.readByYearAndParentTagId(year, parentTagId).map {
createExperienceDetailResponse(it)
}

return GetExperience.Response(experiences)
}

fun getExperienceByYearAndChildTag(year: Int, childTagId: UUID): List<DetailExperience.Response> {
return experienceReader.readByYearAndChildTagId(year, childTagId).map {
fun getExperienceByYearAndChildTag(year: Int, childTagId: UUID): GetExperience.Response {
val experiences = experienceReader.readByYearAndParentTagId(year, childTagId).map {
createExperienceDetailResponse(it)
}

return GetExperience.Response(experiences)
}

private fun createExperienceDetailResponse(experience: Experience): DetailExperience.Response {
private fun createExperienceDetailResponse(experience: Experience): GetExperience.DetailExperience {
val detailExperienceContents = convertDetailExperienceContent(experience)
val strongPointDetails = convertStrongPoints(experience)
val detailParentTag = convertParentTag(experience)
val detailChildTag = convertChildTag(experience)

return DetailExperience.Response(
return GetExperience.DetailExperience(
id = experience.id,
title = experience.title,
parentTag = detailParentTag,
Expand All @@ -60,22 +64,22 @@ class ExperienceGetService(

private fun convertChildTag(oneExperience: Experience) =
tagReader.readById(oneExperience.childTagId).let {
DetailExperience.DetailTag(
GetExperience.DetailTag(
it.id,
it.name
)
}

private fun convertParentTag(oneExperience: Experience) =
tagReader.readById(oneExperience.parentTagId).let {
DetailExperience.DetailTag(
GetExperience.DetailTag(
it.id,
it.name
)
}

private fun convertDetailExperienceContent(experience: Experience) =
experience.contents.map { DetailExperience.DetailExperienceContent(
experience.contents.map { GetExperience.DetailExperienceContent(
it.question,
it.answer
)
Expand All @@ -84,7 +88,7 @@ class ExperienceGetService(
private fun convertStrongPoints(experience: Experience) =
experience.strongPoints.map { it.strongPointId }.let {
strongPointReader.readByIds(it).map { strongPoint ->
DetailExperience.DetailStrongPoint(
GetExperience.DetailStrongPoint(
strongPoint.id,
strongPoint.name
)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
package com.bamyanggang.apimodule.domain.experience.presentation

import com.bamyanggang.apimodule.domain.experience.application.dto.CreateExperience
import com.bamyanggang.apimodule.domain.experience.application.dto.DetailExperience
import com.bamyanggang.apimodule.domain.experience.application.dto.EditExperience
import com.bamyanggang.apimodule.domain.experience.application.dto.ExperienceYear
import com.bamyanggang.apimodule.domain.experience.application.dto.*
import com.bamyanggang.apimodule.domain.experience.application.service.ExperienceCreateService
import com.bamyanggang.apimodule.domain.experience.application.service.ExperienceDeleteService
import com.bamyanggang.apimodule.domain.experience.application.service.ExperienceEditService
Expand All @@ -20,16 +17,16 @@ class ExperienceController(
) {
@GetMapping(ExperienceApi.BASE_URL)
fun getExperienceByFilter(@RequestParam("year") year: Int,
@RequestParam("parent-tag", required = false) parentTagId: UUID,
@RequestParam("parent-tag") parentTagId: UUID,
@RequestParam("child-tag", required = false) childTagId: UUID?
) : List<DetailExperience.Response> =
) : GetExperience.Response =
when (childTagId){
null -> experienceGetService.getExperienceByYearAndParentTag(year, parentTagId)
else -> experienceGetService.getExperienceByYearAndChildTag(year, childTagId)
}

@GetMapping(ExperienceApi.EXPERIENCE_PATH_VARIABLE_URL)
fun getExperience(@PathVariable("experienceId") experienceId: UUID): DetailExperience.Response {
fun getExperience(@PathVariable("experienceId") experienceId: UUID): GetExperience.DetailExperience {
return experienceGetService.getExperienceDetailById(experienceId)
}

Expand Down
Loading

0 comments on commit 40cffe1

Please sign in to comment.