generated from pricelees/issue-pr-template
refactor: store 내 DTO, Mapper 패키지 분리
This commit is contained in:
parent
c4604ccdde
commit
8bb22a6a84
@ -4,12 +4,20 @@ import com.sangdol.common.persistence.IDGenerator
|
||||
import com.sangdol.roomescape.admin.business.AdminService
|
||||
import com.sangdol.roomescape.common.types.AuditingInfo
|
||||
import com.sangdol.roomescape.region.business.RegionService
|
||||
import com.sangdol.roomescape.store.dto.DetailStoreResponse
|
||||
import com.sangdol.roomescape.store.dto.StoreNameListResponse
|
||||
import com.sangdol.roomescape.store.dto.StoreInfoResponse
|
||||
import com.sangdol.roomescape.store.dto.StoreRegisterRequest
|
||||
import com.sangdol.roomescape.store.dto.StoreRegisterResponse
|
||||
import com.sangdol.roomescape.store.dto.StoreUpdateRequest
|
||||
import com.sangdol.roomescape.store.exception.StoreErrorCode
|
||||
import com.sangdol.roomescape.store.exception.StoreException
|
||||
import com.sangdol.roomescape.store.infrastructure.persistence.StoreEntity
|
||||
import com.sangdol.roomescape.store.infrastructure.persistence.StoreRepository
|
||||
import com.sangdol.roomescape.store.infrastructure.persistence.StoreStatus
|
||||
import com.sangdol.roomescape.store.web.*
|
||||
import com.sangdol.roomescape.store.mapper.toDetailResponse
|
||||
import com.sangdol.roomescape.store.mapper.toInfoResponse
|
||||
import com.sangdol.roomescape.store.mapper.toSimpleListResponse
|
||||
import io.github.oshai.kotlinlogging.KLogger
|
||||
import io.github.oshai.kotlinlogging.KotlinLogging
|
||||
import org.springframework.stereotype.Service
|
||||
@ -85,7 +93,7 @@ class StoreService(
|
||||
}
|
||||
|
||||
@Transactional(readOnly = true)
|
||||
fun getAllActiveStores(sidoCode: String?, sigunguCode: String?): SimpleStoreListResponse {
|
||||
fun getAllActiveStores(sidoCode: String?, sigunguCode: String?): StoreNameListResponse {
|
||||
log.info { "[getAllActiveStores] 전체 매장 조회 시작" }
|
||||
|
||||
val regionCode: String? = when {
|
||||
|
||||
@ -3,8 +3,8 @@ package com.sangdol.roomescape.store.business
|
||||
import com.sangdol.roomescape.store.exception.StoreErrorCode
|
||||
import com.sangdol.roomescape.store.exception.StoreException
|
||||
import com.sangdol.roomescape.store.infrastructure.persistence.StoreRepository
|
||||
import com.sangdol.roomescape.store.web.StoreRegisterRequest
|
||||
import com.sangdol.roomescape.store.web.StoreUpdateRequest
|
||||
import com.sangdol.roomescape.store.dto.StoreRegisterRequest
|
||||
import com.sangdol.roomescape.store.dto.StoreUpdateRequest
|
||||
import io.github.oshai.kotlinlogging.KLogger
|
||||
import io.github.oshai.kotlinlogging.KotlinLogging
|
||||
import org.springframework.stereotype.Component
|
||||
|
||||
@ -5,7 +5,12 @@ import com.sangdol.roomescape.admin.infrastructure.persistence.AdminType
|
||||
import com.sangdol.roomescape.admin.infrastructure.persistence.Privilege
|
||||
import com.sangdol.roomescape.auth.web.support.AdminOnly
|
||||
import com.sangdol.roomescape.auth.web.support.Public
|
||||
import com.sangdol.roomescape.store.web.*
|
||||
import com.sangdol.roomescape.store.dto.DetailStoreResponse
|
||||
import com.sangdol.roomescape.store.dto.StoreNameListResponse
|
||||
import com.sangdol.roomescape.store.dto.StoreInfoResponse
|
||||
import com.sangdol.roomescape.store.dto.StoreRegisterRequest
|
||||
import com.sangdol.roomescape.store.dto.StoreRegisterResponse
|
||||
import com.sangdol.roomescape.store.dto.StoreUpdateRequest
|
||||
import io.swagger.v3.oas.annotations.Operation
|
||||
import io.swagger.v3.oas.annotations.responses.ApiResponse
|
||||
import io.swagger.v3.oas.annotations.responses.ApiResponses
|
||||
@ -53,7 +58,7 @@ interface PublicStoreAPI {
|
||||
fun getStores(
|
||||
@RequestParam(value = "sido", required = false) sidoCode: String?,
|
||||
@RequestParam(value = "sigungu", required = false) sigunguCode: String?
|
||||
): ResponseEntity<CommonApiResponse<SimpleStoreListResponse>>
|
||||
): ResponseEntity<CommonApiResponse<StoreNameListResponse>>
|
||||
|
||||
@Public
|
||||
@Operation(summary = "특정 매장의 정보 조회")
|
||||
|
||||
@ -0,0 +1,22 @@
|
||||
package com.sangdol.roomescape.store.dto
|
||||
|
||||
import com.sangdol.roomescape.common.types.AuditingInfo
|
||||
import com.sangdol.roomescape.region.web.RegionInfoResponse
|
||||
|
||||
data class StoreRegisterRequest(
|
||||
val name: String,
|
||||
val address: String,
|
||||
val contact: String,
|
||||
val businessRegNum: String,
|
||||
val regionCode: String
|
||||
)
|
||||
|
||||
data class StoreRegisterResponse(
|
||||
val id: Long
|
||||
)
|
||||
|
||||
data class StoreUpdateRequest(
|
||||
val name: String? = null,
|
||||
val address: String? = null,
|
||||
val contact: String? = null,
|
||||
)
|
||||
@ -0,0 +1,31 @@
|
||||
package com.sangdol.roomescape.store.dto
|
||||
|
||||
import com.sangdol.roomescape.common.types.AuditingInfo
|
||||
import com.sangdol.roomescape.region.web.RegionInfoResponse
|
||||
|
||||
data class StoreNameResponse(
|
||||
val id: Long,
|
||||
val name: String
|
||||
)
|
||||
|
||||
data class StoreNameListResponse(
|
||||
val stores: List<StoreNameResponse>
|
||||
)
|
||||
|
||||
data class StoreInfoResponse(
|
||||
val id: Long,
|
||||
val name: String,
|
||||
val address: String,
|
||||
val contact: String,
|
||||
val businessRegNum: String
|
||||
)
|
||||
|
||||
data class DetailStoreResponse(
|
||||
val id: Long,
|
||||
val name: String,
|
||||
val address: String,
|
||||
val contact: String,
|
||||
val businessRegNum: String,
|
||||
val region: RegionInfoResponse,
|
||||
val audit: AuditingInfo
|
||||
)
|
||||
@ -0,0 +1,34 @@
|
||||
package com.sangdol.roomescape.store.mapper
|
||||
|
||||
import com.sangdol.roomescape.common.types.AuditingInfo
|
||||
import com.sangdol.roomescape.region.web.RegionInfoResponse
|
||||
import com.sangdol.roomescape.store.dto.DetailStoreResponse
|
||||
import com.sangdol.roomescape.store.dto.StoreInfoResponse
|
||||
import com.sangdol.roomescape.store.dto.StoreNameListResponse
|
||||
import com.sangdol.roomescape.store.dto.StoreNameResponse
|
||||
import com.sangdol.roomescape.store.infrastructure.persistence.StoreEntity
|
||||
|
||||
fun StoreEntity.toInfoResponse() = StoreInfoResponse(
|
||||
id = this.id,
|
||||
name = this.name,
|
||||
address = this.address,
|
||||
contact = this.contact,
|
||||
businessRegNum = this.businessRegNum
|
||||
)
|
||||
|
||||
fun StoreEntity.toDetailResponse(
|
||||
region: RegionInfoResponse,
|
||||
audit: AuditingInfo
|
||||
) = DetailStoreResponse(
|
||||
id = this.id,
|
||||
name = this.name,
|
||||
address = this.address,
|
||||
contact = this.contact,
|
||||
businessRegNum = this.businessRegNum,
|
||||
region = region,
|
||||
audit = audit,
|
||||
)
|
||||
|
||||
fun List<StoreEntity>.toSimpleListResponse() = StoreNameListResponse(
|
||||
stores = this.map { StoreNameResponse(id = it.id, name = it.name) }
|
||||
)
|
||||
@ -3,6 +3,10 @@ package com.sangdol.roomescape.store.web
|
||||
import com.sangdol.common.types.web.CommonApiResponse
|
||||
import com.sangdol.roomescape.store.business.StoreService
|
||||
import com.sangdol.roomescape.store.docs.AdminStoreAPI
|
||||
import com.sangdol.roomescape.store.dto.DetailStoreResponse
|
||||
import com.sangdol.roomescape.store.dto.StoreRegisterRequest
|
||||
import com.sangdol.roomescape.store.dto.StoreRegisterResponse
|
||||
import com.sangdol.roomescape.store.dto.StoreUpdateRequest
|
||||
import jakarta.validation.Valid
|
||||
import org.springframework.http.ResponseEntity
|
||||
import org.springframework.web.bind.annotation.*
|
||||
|
||||
@ -1,46 +0,0 @@
|
||||
package com.sangdol.roomescape.store.web
|
||||
|
||||
import com.sangdol.roomescape.common.types.AuditingInfo
|
||||
import com.sangdol.roomescape.region.web.RegionInfoResponse
|
||||
import com.sangdol.roomescape.store.infrastructure.persistence.StoreEntity
|
||||
|
||||
data class StoreRegisterRequest(
|
||||
val name: String,
|
||||
val address: String,
|
||||
val contact: String,
|
||||
val businessRegNum: String,
|
||||
val regionCode: String
|
||||
)
|
||||
|
||||
data class StoreRegisterResponse(
|
||||
val id: Long
|
||||
)
|
||||
|
||||
data class StoreUpdateRequest(
|
||||
val name: String? = null,
|
||||
val address: String? = null,
|
||||
val contact: String? = null,
|
||||
)
|
||||
|
||||
data class DetailStoreResponse(
|
||||
val id: Long,
|
||||
val name: String,
|
||||
val address: String,
|
||||
val contact: String,
|
||||
val businessRegNum: String,
|
||||
val region: RegionInfoResponse,
|
||||
val audit: AuditingInfo
|
||||
)
|
||||
|
||||
fun StoreEntity.toDetailResponse(
|
||||
region: RegionInfoResponse,
|
||||
audit: AuditingInfo
|
||||
) = DetailStoreResponse(
|
||||
id = this.id,
|
||||
name = this.name,
|
||||
address = this.address,
|
||||
contact = this.contact,
|
||||
businessRegNum = this.businessRegNum,
|
||||
region = region,
|
||||
audit = audit,
|
||||
)
|
||||
@ -3,6 +3,8 @@ package com.sangdol.roomescape.store.web
|
||||
import com.sangdol.common.types.web.CommonApiResponse
|
||||
import com.sangdol.roomescape.store.business.StoreService
|
||||
import com.sangdol.roomescape.store.docs.PublicStoreAPI
|
||||
import com.sangdol.roomescape.store.dto.StoreNameListResponse
|
||||
import com.sangdol.roomescape.store.dto.StoreInfoResponse
|
||||
import org.springframework.http.ResponseEntity
|
||||
import org.springframework.web.bind.annotation.GetMapping
|
||||
import org.springframework.web.bind.annotation.PathVariable
|
||||
@ -18,7 +20,7 @@ class StoreController(
|
||||
override fun getStores(
|
||||
@RequestParam(value = "sido", required = false) sidoCode: String?,
|
||||
@RequestParam(value = "sigungu", required = false) sigunguCode: String?
|
||||
): ResponseEntity<CommonApiResponse<SimpleStoreListResponse>> {
|
||||
): ResponseEntity<CommonApiResponse<StoreNameListResponse>> {
|
||||
val response = storeService.getAllActiveStores(sidoCode, sigunguCode)
|
||||
|
||||
return ResponseEntity.ok(CommonApiResponse(response))
|
||||
|
||||
@ -1,32 +0,0 @@
|
||||
package com.sangdol.roomescape.store.web
|
||||
|
||||
import com.sangdol.roomescape.store.infrastructure.persistence.StoreEntity
|
||||
|
||||
data class SimpleStoreResponse(
|
||||
val id: Long,
|
||||
val name: String
|
||||
)
|
||||
|
||||
data class SimpleStoreListResponse(
|
||||
val stores: List<SimpleStoreResponse>
|
||||
)
|
||||
|
||||
fun List<StoreEntity>.toSimpleListResponse() = SimpleStoreListResponse(
|
||||
stores = this.map { SimpleStoreResponse(id = it.id, name = it.name) }
|
||||
)
|
||||
|
||||
data class StoreInfoResponse(
|
||||
val id: Long,
|
||||
val name: String,
|
||||
val address: String,
|
||||
val contact: String,
|
||||
val businessRegNum: String
|
||||
)
|
||||
|
||||
fun StoreEntity.toInfoResponse() = StoreInfoResponse(
|
||||
id = this.id,
|
||||
name = this.name,
|
||||
address = this.address,
|
||||
contact = this.contact,
|
||||
businessRegNum = this.businessRegNum
|
||||
)
|
||||
@ -9,7 +9,7 @@ import com.sangdol.roomescape.store.exception.StoreErrorCode
|
||||
import com.sangdol.roomescape.store.infrastructure.persistence.StoreEntity
|
||||
import com.sangdol.roomescape.store.infrastructure.persistence.StoreRepository
|
||||
import com.sangdol.roomescape.store.infrastructure.persistence.StoreStatus
|
||||
import com.sangdol.roomescape.store.web.StoreUpdateRequest
|
||||
import com.sangdol.roomescape.store.dto.StoreUpdateRequest
|
||||
import com.sangdol.roomescape.supports.*
|
||||
import io.kotest.assertions.assertSoftly
|
||||
import io.kotest.matchers.date.shouldBeAfter
|
||||
|
||||
@ -16,7 +16,7 @@ import com.sangdol.roomescape.schedule.infrastructure.persistence.ScheduleEntity
|
||||
import com.sangdol.roomescape.schedule.web.ScheduleCreateRequest
|
||||
import com.sangdol.roomescape.store.infrastructure.persistence.StoreEntity
|
||||
import com.sangdol.roomescape.store.infrastructure.persistence.StoreStatus
|
||||
import com.sangdol.roomescape.store.web.StoreRegisterRequest
|
||||
import com.sangdol.roomescape.store.dto.StoreRegisterRequest
|
||||
import com.sangdol.roomescape.theme.infrastructure.persistence.Difficulty
|
||||
import com.sangdol.roomescape.theme.infrastructure.persistence.ThemeEntity
|
||||
import com.sangdol.roomescape.theme.dto.ThemeCreateRequest
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user