refactor: user 내 DTO, Mapper 패키지 분리

This commit is contained in:
이상진 2025-10-07 17:03:49 +09:00
parent ef64a740c2
commit 038381424c
13 changed files with 53 additions and 44 deletions

View File

@ -13,7 +13,7 @@ import com.sangdol.roomescape.schedule.infrastructure.persistence.ScheduleStatus
import com.sangdol.roomescape.schedule.web.ScheduleOverviewResponse
import com.sangdol.roomescape.theme.business.ThemeService
import com.sangdol.roomescape.user.business.UserService
import com.sangdol.roomescape.user.web.UserContactResponse
import com.sangdol.roomescape.user.dto.UserContactResponse
import io.github.oshai.kotlinlogging.KLogger
import io.github.oshai.kotlinlogging.KotlinLogging
import org.springframework.data.repository.findByIdOrNull
@ -159,5 +159,4 @@ class ReservationService(
}
}
}

View File

@ -4,7 +4,7 @@ import com.sangdol.roomescape.payment.web.PaymentWithDetailResponse
import com.sangdol.roomescape.reservation.infrastructure.persistence.ReservationEntity
import com.sangdol.roomescape.reservation.infrastructure.persistence.ReservationStatus
import com.sangdol.roomescape.schedule.web.ScheduleOverviewResponse
import com.sangdol.roomescape.user.web.UserContactResponse
import com.sangdol.roomescape.user.dto.UserContactResponse
import jakarta.validation.constraints.NotEmpty
import java.time.Instant
import java.time.LocalDate

View File

@ -2,15 +2,15 @@ package com.sangdol.roomescape.user.business
import com.sangdol.common.persistence.IDGenerator
import com.sangdol.roomescape.common.types.CurrentUserContext
import com.sangdol.roomescape.user.business.dto.UserLoginCredentials
import com.sangdol.roomescape.user.business.dto.toCredentials
import com.sangdol.roomescape.user.dto.UserContactResponse
import com.sangdol.roomescape.user.dto.UserCreateRequest
import com.sangdol.roomescape.user.dto.UserCreateResponse
import com.sangdol.roomescape.user.dto.UserLoginCredentials
import com.sangdol.roomescape.user.exception.UserErrorCode
import com.sangdol.roomescape.user.exception.UserException
import com.sangdol.roomescape.user.infrastructure.persistence.*
import com.sangdol.roomescape.user.web.UserContactResponse
import com.sangdol.roomescape.user.web.UserCreateRequest
import com.sangdol.roomescape.user.web.UserCreateResponse
import com.sangdol.roomescape.user.web.toEntity
import com.sangdol.roomescape.user.mapper.toCredentials
import com.sangdol.roomescape.user.mapper.toEntity
import io.github.oshai.kotlinlogging.KLogger
import io.github.oshai.kotlinlogging.KotlinLogging
import org.springframework.data.repository.findByIdOrNull

View File

@ -4,9 +4,9 @@ import com.sangdol.common.types.web.CommonApiResponse
import com.sangdol.roomescape.auth.web.support.Public
import com.sangdol.roomescape.auth.web.support.User
import com.sangdol.roomescape.common.types.CurrentUserContext
import com.sangdol.roomescape.user.web.UserContactResponse
import com.sangdol.roomescape.user.web.UserCreateRequest
import com.sangdol.roomescape.user.web.UserCreateResponse
import com.sangdol.roomescape.user.dto.UserContactResponse
import com.sangdol.roomescape.user.dto.UserCreateRequest
import com.sangdol.roomescape.user.dto.UserCreateResponse
import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.responses.ApiResponse
import io.swagger.v3.oas.annotations.responses.ApiResponses

View File

@ -1,4 +1,4 @@
package com.sangdol.roomescape.user.web
package com.sangdol.roomescape.user.dto
import com.sangdol.roomescape.user.infrastructure.persistence.UserEntity
import com.sangdol.roomescape.user.infrastructure.persistence.UserStatus
@ -27,23 +27,7 @@ data class UserCreateRequest(
val regionCode: String?,
)
fun UserCreateRequest.toEntity(id: Long, status: UserStatus) = UserEntity(
id = id,
name = this.name,
email = this.email,
password = this.password,
phone = this.phone,
regionCode = this.regionCode,
status = status
)
data class UserCreateResponse(
val id: Long,
val name: String
)
data class UserContactResponse(
val id: Long,
val name: String,
val phone: String
)

View File

@ -0,0 +1,8 @@
package com.sangdol.roomescape.user.dto
data class UserContactResponse(
val id: Long,
val name: String,
val phone: String
)

View File

@ -1,8 +1,7 @@
package com.sangdol.roomescape.user.business.dto
package com.sangdol.roomescape.user.dto
import com.sangdol.roomescape.auth.web.LoginCredentials
import com.sangdol.roomescape.auth.web.LoginSuccessResponse
import com.sangdol.roomescape.user.infrastructure.persistence.UserEntity
data class UserLoginCredentials(
override val id: Long,
@ -15,12 +14,6 @@ data class UserLoginCredentials(
)
}
fun UserEntity.toCredentials() = UserLoginCredentials(
id = this.id,
password = this.password,
name = this.name,
)
data class UserLoginSuccessResponse(
override val accessToken: String,
override val name: String,

View File

@ -0,0 +1,22 @@
package com.sangdol.roomescape.user.mapper
import com.sangdol.roomescape.user.dto.UserCreateRequest
import com.sangdol.roomescape.user.dto.UserLoginCredentials
import com.sangdol.roomescape.user.infrastructure.persistence.UserEntity
import com.sangdol.roomescape.user.infrastructure.persistence.UserStatus
fun UserCreateRequest.toEntity(id: Long, status: UserStatus) = UserEntity(
id = id,
name = this.name,
email = this.email,
password = this.password,
phone = this.phone,
regionCode = this.regionCode,
status = status
)
fun UserEntity.toCredentials() = UserLoginCredentials(
id = this.id,
password = this.password,
name = this.name,
)

View File

@ -5,6 +5,9 @@ import com.sangdol.roomescape.auth.web.support.User
import com.sangdol.roomescape.common.types.CurrentUserContext
import com.sangdol.roomescape.user.business.UserService
import com.sangdol.roomescape.user.docs.UserAPI
import com.sangdol.roomescape.user.dto.UserContactResponse
import com.sangdol.roomescape.user.dto.UserCreateRequest
import com.sangdol.roomescape.user.dto.UserCreateResponse
import jakarta.validation.Valid
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.*

View File

@ -19,7 +19,7 @@ import com.sangdol.roomescape.theme.infrastructure.persistence.ThemeEntity
import com.sangdol.roomescape.user.business.SIGNUP
import com.sangdol.roomescape.user.infrastructure.persistence.UserEntity
import com.sangdol.roomescape.user.infrastructure.persistence.UserStatus
import com.sangdol.roomescape.user.web.UserContactResponse
import com.sangdol.roomescape.user.dto.UserContactResponse
import io.kotest.core.test.TestCaseOrder
import jakarta.persistence.EntityManager
import kotlinx.coroutines.*

View File

@ -22,8 +22,8 @@ import com.sangdol.roomescape.theme.infrastructure.persistence.ThemeEntity
import com.sangdol.roomescape.theme.web.ThemeCreateRequest
import com.sangdol.roomescape.user.infrastructure.persistence.UserEntity
import com.sangdol.roomescape.user.infrastructure.persistence.UserStatus
import com.sangdol.roomescape.user.web.MIN_PASSWORD_LENGTH
import com.sangdol.roomescape.user.web.UserCreateRequest
import com.sangdol.roomescape.user.dto.MIN_PASSWORD_LENGTH
import com.sangdol.roomescape.user.dto.UserCreateRequest
import java.time.LocalDate
import java.time.LocalTime

View File

@ -9,7 +9,7 @@ import com.sangdol.roomescape.auth.web.PrincipalType
import com.sangdol.roomescape.store.infrastructure.persistence.StoreRepository
import com.sangdol.roomescape.user.infrastructure.persistence.UserEntity
import com.sangdol.roomescape.user.infrastructure.persistence.UserRepository
import com.sangdol.roomescape.user.web.UserCreateRequest
import com.sangdol.roomescape.user.dto.UserCreateRequest
import io.restassured.module.kotlin.extensions.Extract
import io.restassured.module.kotlin.extensions.Given
import io.restassured.module.kotlin.extensions.Then

View File

@ -12,8 +12,8 @@ import com.sangdol.roomescape.supports.runTest
import com.sangdol.roomescape.user.business.SIGNUP
import com.sangdol.roomescape.user.exception.UserErrorCode
import com.sangdol.roomescape.user.infrastructure.persistence.*
import com.sangdol.roomescape.user.web.MIN_PASSWORD_LENGTH
import com.sangdol.roomescape.user.web.UserCreateRequest
import com.sangdol.roomescape.user.dto.MIN_PASSWORD_LENGTH
import com.sangdol.roomescape.user.dto.UserCreateRequest
import io.kotest.assertions.assertSoftly
import io.kotest.matchers.shouldBe
import io.mockk.every