refactor: CommonApiResponse 및 Audit 타입 모듈 이전으로 인한 기존 코드 반영

This commit is contained in:
이상진 2025-09-27 21:04:56 +09:00
parent 288b67518e
commit 7c52460ac6
29 changed files with 1041 additions and 1044 deletions

View File

@ -1,17 +1,16 @@
package com.sangdol.roomescape.admin.business
import com.sangdol.common.types.audit.Auditor
import com.sangdol.roomescape.admin.exception.AdminErrorCode
import com.sangdol.roomescape.admin.exception.AdminException
import com.sangdol.roomescape.admin.infrastructure.persistence.AdminRepository
import com.sangdol.roomescape.common.dto.AdminLoginCredentials
import com.sangdol.roomescape.common.dto.toCredentials
import io.github.oshai.kotlinlogging.KLogger
import io.github.oshai.kotlinlogging.KotlinLogging
import org.springframework.data.repository.findByIdOrNull
import org.springframework.stereotype.Service
import org.springframework.transaction.annotation.Transactional
import com.sangdol.roomescape.admin.exception.AdminErrorCode
import com.sangdol.roomescape.admin.exception.AdminException
import com.sangdol.roomescape.admin.infrastructure.persistence.AdminRepository
import com.sangdol.roomescape.common.dto.AdminLoginCredentials
import com.sangdol.roomescape.common.dto.AuditConstant
import com.sangdol.roomescape.common.dto.OperatorInfo
import com.sangdol.roomescape.common.dto.toCredentials
private val log: KLogger = KotlinLogging.logger {}
@ -35,16 +34,16 @@ class AdminService(
}
@Transactional(readOnly = true)
fun findOperatorOrUnknown(id: Long): OperatorInfo {
fun findOperatorOrUnknown(id: Long): Auditor {
log.info { "[AdminService.findOperatorById] 작업자 정보 조회 시작: id=${id}" }
return adminRepository.findByIdOrNull(id)?.let { admin ->
OperatorInfo(admin.id, admin.name).also {
Auditor(admin.id, admin.name).also {
log.info { "[AdminService.findOperatorById] 작업자 정보 조회 완료: id=${admin.id}, name=${admin.name}" }
}
} ?: run {
log.warn { "[AdminService.findOperatorById] 작업자 정보 조회 실패. id=${id}" }
AuditConstant.UNKNOWN_OPERATOR
Auditor.UNKNOWN
}
}
}

View File

@ -1,5 +1,11 @@
package com.sangdol.roomescape.auth.docs
import com.sangdol.common.types.web.CommonApiResponse
import com.sangdol.roomescape.auth.web.LoginRequest
import com.sangdol.roomescape.auth.web.LoginSuccessResponse
import com.sangdol.roomescape.auth.web.support.Public
import com.sangdol.roomescape.auth.web.support.User
import com.sangdol.roomescape.common.dto.CurrentUserContext
import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.responses.ApiResponse
import io.swagger.v3.oas.annotations.responses.ApiResponses
@ -8,12 +14,6 @@ import jakarta.servlet.http.HttpServletResponse
import jakarta.validation.Valid
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.RequestBody
import com.sangdol.roomescape.auth.web.LoginRequest
import com.sangdol.roomescape.auth.web.LoginSuccessResponse
import com.sangdol.roomescape.auth.web.support.Public
import com.sangdol.roomescape.auth.web.support.User
import com.sangdol.roomescape.common.dto.CurrentUserContext
import com.sangdol.roomescape.common.dto.response.CommonApiResponse
interface AuthAPI {

View File

@ -1,16 +1,16 @@
package com.sangdol.roomescape.auth.web
import com.sangdol.common.types.web.CommonApiResponse
import com.sangdol.roomescape.auth.business.AuthService
import com.sangdol.roomescape.auth.docs.AuthAPI
import com.sangdol.roomescape.auth.web.support.User
import com.sangdol.roomescape.common.dto.CurrentUserContext
import jakarta.servlet.http.HttpServletRequest
import jakarta.servlet.http.HttpServletResponse
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.PostMapping
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RestController
import com.sangdol.roomescape.auth.business.AuthService
import com.sangdol.roomescape.auth.docs.AuthAPI
import com.sangdol.roomescape.auth.web.support.User
import com.sangdol.roomescape.common.dto.CurrentUserContext
import com.sangdol.roomescape.common.dto.response.CommonApiResponse
@RestController
@RequestMapping("/auth")

View File

@ -8,7 +8,6 @@ import com.sangdol.roomescape.auth.web.LoginSuccessResponse
import com.sangdol.roomescape.auth.web.UserLoginSuccessResponse
import com.sangdol.roomescape.user.infrastructure.persistence.UserEntity
abstract class LoginCredentials {
abstract val id: Long
abstract val password: String

View File

@ -3,9 +3,9 @@ package com.sangdol.roomescape.common.exception
import com.sangdol.common.types.exception.CommonErrorCode
import com.sangdol.common.types.exception.ErrorCode
import com.sangdol.common.types.exception.RoomescapeException
import com.sangdol.common.types.web.CommonErrorResponse
import com.sangdol.common.types.web.HttpStatus
import com.sangdol.roomescape.auth.exception.AuthException
import com.sangdol.roomescape.common.dto.response.CommonErrorResponse
import com.sangdol.roomescape.common.log.ApiLogMessageConverter
import com.sangdol.roomescape.common.log.ConvertResponseMessageRequest
import com.sangdol.roomescape.common.log.LogType

View File

@ -1,5 +1,12 @@
package com.sangdol.roomescape.payment.docs
import com.sangdol.common.types.web.CommonApiResponse
import com.sangdol.roomescape.auth.web.support.User
import com.sangdol.roomescape.auth.web.support.UserOnly
import com.sangdol.roomescape.common.dto.CurrentUserContext
import com.sangdol.roomescape.payment.web.PaymentCancelRequest
import com.sangdol.roomescape.payment.web.PaymentConfirmRequest
import com.sangdol.roomescape.payment.web.PaymentCreateResponse
import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.responses.ApiResponse
import io.swagger.v3.oas.annotations.responses.ApiResponses
@ -7,13 +14,6 @@ import jakarta.validation.Valid
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.RequestBody
import org.springframework.web.bind.annotation.RequestParam
import com.sangdol.roomescape.auth.web.support.User
import com.sangdol.roomescape.auth.web.support.UserOnly
import com.sangdol.roomescape.common.dto.CurrentUserContext
import com.sangdol.roomescape.common.dto.response.CommonApiResponse
import com.sangdol.roomescape.payment.web.PaymentCancelRequest
import com.sangdol.roomescape.payment.web.PaymentConfirmRequest
import com.sangdol.roomescape.payment.web.PaymentCreateResponse
interface PaymentAPI {

View File

@ -1,13 +1,13 @@
package com.sangdol.roomescape.payment.web
import com.sangdol.common.types.web.CommonApiResponse
import com.sangdol.roomescape.auth.web.support.User
import com.sangdol.roomescape.common.dto.CurrentUserContext
import com.sangdol.roomescape.payment.business.PaymentService
import com.sangdol.roomescape.payment.docs.PaymentAPI
import jakarta.validation.Valid
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.*
import com.sangdol.roomescape.auth.web.support.User
import com.sangdol.roomescape.common.dto.CurrentUserContext
import com.sangdol.roomescape.common.dto.response.CommonApiResponse
import com.sangdol.roomescape.payment.business.PaymentService
import com.sangdol.roomescape.payment.docs.PaymentAPI
@RestController
@RequestMapping("/payments")

View File

@ -1,15 +1,15 @@
package com.sangdol.roomescape.region.docs
import com.sangdol.common.types.web.CommonApiResponse
import com.sangdol.roomescape.auth.web.support.Public
import com.sangdol.roomescape.region.web.RegionCodeResponse
import com.sangdol.roomescape.region.web.SidoListResponse
import com.sangdol.roomescape.region.web.SigunguListResponse
import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.responses.ApiResponse
import io.swagger.v3.oas.annotations.responses.ApiResponses
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.RequestParam
import com.sangdol.roomescape.auth.web.support.Public
import com.sangdol.roomescape.common.dto.response.CommonApiResponse
import com.sangdol.roomescape.region.web.RegionCodeResponse
import com.sangdol.roomescape.region.web.SidoListResponse
import com.sangdol.roomescape.region.web.SigunguListResponse
interface RegionAPI {

View File

@ -1,13 +1,13 @@
package com.sangdol.roomescape.region.web
import com.sangdol.common.types.web.CommonApiResponse
import com.sangdol.roomescape.region.business.RegionService
import com.sangdol.roomescape.region.docs.RegionAPI
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RequestParam
import org.springframework.web.bind.annotation.RestController
import com.sangdol.roomescape.common.dto.response.CommonApiResponse
import com.sangdol.roomescape.region.business.RegionService
import com.sangdol.roomescape.region.docs.RegionAPI
@RestController
@RequestMapping("/regions")

View File

@ -1,5 +1,10 @@
package com.sangdol.roomescape.reservation.docs
import com.sangdol.common.types.web.CommonApiResponse
import com.sangdol.roomescape.auth.web.support.User
import com.sangdol.roomescape.auth.web.support.UserOnly
import com.sangdol.roomescape.common.dto.CurrentUserContext
import com.sangdol.roomescape.reservation.web.*
import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.responses.ApiResponse
import io.swagger.v3.oas.annotations.responses.ApiResponses
@ -7,11 +12,6 @@ import jakarta.validation.Valid
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.PathVariable
import org.springframework.web.bind.annotation.RequestBody
import com.sangdol.roomescape.auth.web.support.User
import com.sangdol.roomescape.auth.web.support.UserOnly
import com.sangdol.roomescape.common.dto.CurrentUserContext
import com.sangdol.roomescape.common.dto.response.CommonApiResponse
import com.sangdol.roomescape.reservation.web.*
interface ReservationAPI {
@Operation(summary = "결제 전 임시 예약 저장")

View File

@ -1,13 +1,13 @@
package com.sangdol.roomescape.reservation.web
import com.sangdol.common.types.web.CommonApiResponse
import com.sangdol.roomescape.auth.web.support.User
import com.sangdol.roomescape.common.dto.CurrentUserContext
import com.sangdol.roomescape.reservation.business.ReservationService
import com.sangdol.roomescape.reservation.docs.ReservationAPI
import jakarta.validation.Valid
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.*
import com.sangdol.roomescape.auth.web.support.User
import com.sangdol.roomescape.common.dto.CurrentUserContext
import com.sangdol.roomescape.common.dto.response.CommonApiResponse
import com.sangdol.roomescape.reservation.business.ReservationService
import com.sangdol.roomescape.reservation.docs.ReservationAPI
@RestController
@RequestMapping("/reservations")

View File

@ -2,9 +2,9 @@ package com.sangdol.roomescape.schedule.business
import ScheduleException
import com.sangdol.common.persistence.IDGenerator
import com.sangdol.common.types.audit.AuditingInfo
import com.sangdol.common.types.audit.Auditor
import com.sangdol.roomescape.admin.business.AdminService
import com.sangdol.roomescape.common.dto.AuditInfo
import com.sangdol.roomescape.common.dto.OperatorInfo
import com.sangdol.roomescape.schedule.business.domain.ScheduleOverview
import com.sangdol.roomescape.schedule.exception.ScheduleErrorCode
import com.sangdol.roomescape.schedule.infrastructure.persistence.ScheduleEntity
@ -89,15 +89,15 @@ class ScheduleService(
}
@Transactional(readOnly = true)
fun findScheduleAudit(id: Long): AuditInfo {
fun findScheduleAudit(id: Long): AuditingInfo {
log.info { "[ScheduleService.findDetail] 일정 감사 정보 조회 시작: id=$id" }
val schedule: ScheduleEntity = findOrThrow(id)
val createdBy: OperatorInfo = adminService.findOperatorOrUnknown(schedule.createdBy)
val updatedBy: OperatorInfo = adminService.findOperatorOrUnknown(schedule.updatedBy)
val createdBy: Auditor = adminService.findOperatorOrUnknown(schedule.createdBy)
val updatedBy: Auditor = adminService.findOperatorOrUnknown(schedule.updatedBy)
return AuditInfo(schedule.createdAt, createdBy, schedule.updatedAt, updatedBy)
return AuditingInfo(schedule.createdAt, createdBy, schedule.updatedAt, updatedBy)
.also { log.info { "[ScheduleService.findDetail] 일정 감사 정보 조회 완료: id=$id" } }
}

View File

@ -1,5 +1,13 @@
package com.sangdol.roomescape.schedule.docs
import com.sangdol.common.types.audit.AuditingInfo
import com.sangdol.common.types.web.CommonApiResponse
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.auth.web.support.UserOnly
import com.sangdol.roomescape.schedule.web.*
import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.responses.ApiResponse
import io.swagger.v3.oas.annotations.responses.ApiResponses
@ -9,14 +17,6 @@ import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.PathVariable
import org.springframework.web.bind.annotation.RequestBody
import org.springframework.web.bind.annotation.RequestParam
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.auth.web.support.UserOnly
import com.sangdol.roomescape.common.dto.AuditInfo
import com.sangdol.roomescape.common.dto.response.CommonApiResponse
import com.sangdol.roomescape.schedule.web.*
import java.time.LocalDate
interface AdminScheduleAPI {
@ -35,7 +35,7 @@ interface AdminScheduleAPI {
@ApiResponses(ApiResponse(responseCode = "200", useReturnTypeSchema = true))
fun findScheduleAudit(
@PathVariable("id") id: Long
): ResponseEntity<CommonApiResponse<AuditInfo>>
): ResponseEntity<CommonApiResponse<AuditingInfo>>
@AdminOnly(type = AdminType.STORE, privilege = Privilege.CREATE)
@Operation(summary = "일정 생성")

View File

@ -1,13 +1,13 @@
package com.sangdol.roomescape.schedule.web
import com.sangdol.common.types.audit.AuditingInfo
import com.sangdol.common.types.web.CommonApiResponse
import com.sangdol.roomescape.schedule.business.ScheduleService
import com.sangdol.roomescape.schedule.docs.AdminScheduleAPI
import jakarta.validation.Valid
import org.springframework.format.annotation.DateTimeFormat
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.*
import com.sangdol.roomescape.common.dto.AuditInfo
import com.sangdol.roomescape.common.dto.response.CommonApiResponse
import com.sangdol.roomescape.schedule.business.ScheduleService
import com.sangdol.roomescape.schedule.docs.AdminScheduleAPI
import java.time.LocalDate
@RestController
@ -29,7 +29,7 @@ class AdminScheduleController(
@GetMapping("/schedules/{id}/audits")
override fun findScheduleAudit(
@PathVariable("id") id: Long
): ResponseEntity<CommonApiResponse<AuditInfo>> {
): ResponseEntity<CommonApiResponse<AuditingInfo>> {
val response = scheduleService.findScheduleAudit(id)
return ResponseEntity.ok(CommonApiResponse(response))

View File

@ -1,12 +1,12 @@
package com.sangdol.roomescape.schedule.web
import org.springframework.format.annotation.DateTimeFormat
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.*
import com.sangdol.roomescape.common.dto.response.CommonApiResponse
import com.sangdol.common.types.web.CommonApiResponse
import com.sangdol.roomescape.schedule.business.ScheduleService
import com.sangdol.roomescape.schedule.docs.PublicScheduleAPI
import com.sangdol.roomescape.schedule.docs.UserScheduleAPI
import org.springframework.format.annotation.DateTimeFormat
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.*
import java.time.LocalDate
@RestController

View File

@ -1,8 +1,8 @@
package com.sangdol.roomescape.store.business
import com.sangdol.common.persistence.IDGenerator
import com.sangdol.common.types.audit.AuditingInfo
import com.sangdol.roomescape.admin.business.AdminService
import com.sangdol.roomescape.common.dto.AuditInfo
import com.sangdol.roomescape.region.business.RegionService
import com.sangdol.roomescape.store.exception.StoreErrorCode
import com.sangdol.roomescape.store.exception.StoreException
@ -108,12 +108,12 @@ class StoreService(
.also { log.info { "[StoreService.findStoreInfo] 매장 정보 조회 완료: id=${id}" } }
}
private fun getAuditInfo(store: StoreEntity): AuditInfo {
private fun getAuditInfo(store: StoreEntity): AuditingInfo {
log.info { "[StoreService.getAuditInfo] 감사 정보 조회 시작: storeId=${store.id}" }
val createdBy = adminService.findOperatorOrUnknown(store.createdBy)
val updatedBy = adminService.findOperatorOrUnknown(store.updatedBy)
return AuditInfo(
return AuditingInfo(
createdAt = store.createdAt,
createdBy = createdBy,
updatedAt = store.updatedAt,

View File

@ -1,5 +1,11 @@
package com.sangdol.roomescape.store.docs
import com.sangdol.common.types.web.CommonApiResponse
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 io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.responses.ApiResponse
import io.swagger.v3.oas.annotations.responses.ApiResponses
@ -8,12 +14,6 @@ import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.PathVariable
import org.springframework.web.bind.annotation.RequestBody
import org.springframework.web.bind.annotation.RequestParam
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.common.dto.response.CommonApiResponse
import com.sangdol.roomescape.store.web.*
interface AdminStoreAPI {
@AdminOnly(type = AdminType.HQ, privilege = Privilege.READ_DETAIL)

View File

@ -1,11 +1,11 @@
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 jakarta.validation.Valid
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.*
import com.sangdol.roomescape.common.dto.response.CommonApiResponse
import com.sangdol.roomescape.store.business.StoreService
import com.sangdol.roomescape.store.docs.AdminStoreAPI
@RestController
@RequestMapping("/admin/stores")

View File

@ -1,6 +1,6 @@
package com.sangdol.roomescape.store.web
import com.sangdol.roomescape.common.dto.AuditInfo
import com.sangdol.common.types.audit.AuditingInfo
import com.sangdol.roomescape.region.web.RegionInfoResponse
import com.sangdol.roomescape.store.infrastructure.persistence.StoreEntity
@ -29,12 +29,12 @@ data class DetailStoreResponse(
val contact: String,
val businessRegNum: String,
val region: RegionInfoResponse,
val audit: AuditInfo
val audit: AuditingInfo
)
fun StoreEntity.toDetailResponse(
region: RegionInfoResponse,
audit: AuditInfo
audit: AuditingInfo
) = DetailStoreResponse(
id = this.id,
name = this.name,

View File

@ -1,13 +1,13 @@
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 org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.PathVariable
import org.springframework.web.bind.annotation.RequestParam
import org.springframework.web.bind.annotation.RestController
import com.sangdol.roomescape.common.dto.response.CommonApiResponse
import com.sangdol.roomescape.store.business.StoreService
import com.sangdol.roomescape.store.docs.PublicStoreAPI
@RestController
class StoreController(

View File

@ -1,8 +1,8 @@
package com.sangdol.roomescape.theme.business
import com.sangdol.common.persistence.IDGenerator
import com.sangdol.common.types.audit.AuditingInfo
import com.sangdol.roomescape.admin.business.AdminService
import com.sangdol.roomescape.common.dto.AuditInfo
import com.sangdol.roomescape.common.util.DateUtils
import com.sangdol.roomescape.theme.exception.ThemeErrorCode
import com.sangdol.roomescape.theme.exception.ThemeException
@ -78,7 +78,7 @@ class ThemeService(
val createdBy = adminService.findOperatorOrUnknown(theme.createdBy)
val updatedBy = adminService.findOperatorOrUnknown(theme.updatedBy)
val audit = AuditInfo(theme.createdAt, createdBy, theme.updatedAt, updatedBy)
val audit = AuditingInfo(theme.createdAt, createdBy, theme.updatedAt, updatedBy)
return theme.toAdminThemeDetailResponse(audit)
.also { log.info { "[ThemeService.findAdminThemeDetail] 테마 상세 조회 완료: id=$id, name=${theme.name}" } }

View File

@ -1,5 +1,11 @@
package com.sangdol.roomescape.theme.docs
import com.sangdol.common.types.web.CommonApiResponse
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.theme.web.*
import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.responses.ApiResponse
import io.swagger.v3.oas.annotations.responses.ApiResponses
@ -9,12 +15,6 @@ import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.PathVariable
import org.springframework.web.bind.annotation.RequestBody
import org.springframework.web.bind.annotation.RequestParam
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.common.dto.response.CommonApiResponse
import com.sangdol.roomescape.theme.web.*
interface AdminThemeAPI {
@AdminOnly(type = AdminType.HQ, privilege = Privilege.READ_SUMMARY)

View File

@ -1,11 +1,11 @@
package com.sangdol.roomescape.theme.web
import com.sangdol.common.types.web.CommonApiResponse
import com.sangdol.roomescape.theme.business.ThemeService
import com.sangdol.roomescape.theme.docs.AdminThemeAPI
import jakarta.validation.Valid
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.*
import com.sangdol.roomescape.common.dto.response.CommonApiResponse
import com.sangdol.roomescape.theme.business.ThemeService
import com.sangdol.roomescape.theme.docs.AdminThemeAPI
import java.net.URI
@RestController

View File

@ -1,6 +1,6 @@
package com.sangdol.roomescape.theme.web
import com.sangdol.roomescape.common.dto.AuditInfo
import com.sangdol.common.types.audit.AuditingInfo
import com.sangdol.roomescape.theme.infrastructure.persistence.Difficulty
import com.sangdol.roomescape.theme.infrastructure.persistence.ThemeEntity
@ -95,10 +95,10 @@ fun List<ThemeEntity>.toAdminThemeSummaryListResponse() = AdminThemeSummaryListR
data class AdminThemeDetailResponse(
val theme: ThemeInfoResponse,
val isActive: Boolean,
val audit: AuditInfo
val audit: AuditingInfo
)
fun ThemeEntity.toAdminThemeDetailResponse(audit: AuditInfo) =
fun ThemeEntity.toAdminThemeDetailResponse(audit: AuditingInfo) =
AdminThemeDetailResponse(
theme = this.toInfoResponse(),
isActive = this.isActive,

View File

@ -1,10 +1,10 @@
package com.sangdol.roomescape.theme.web
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.*
import com.sangdol.roomescape.common.dto.response.CommonApiResponse
import com.sangdol.common.types.web.CommonApiResponse
import com.sangdol.roomescape.theme.business.ThemeService
import com.sangdol.roomescape.theme.docs.PublicThemeAPI
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.*
@RestController
@RequestMapping("/themes")

View File

@ -1,18 +1,18 @@
package com.sangdol.roomescape.user.docs
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.dto.CurrentUserContext
import com.sangdol.roomescape.user.web.UserContactResponse
import com.sangdol.roomescape.user.web.UserCreateRequest
import com.sangdol.roomescape.user.web.UserCreateResponse
import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.responses.ApiResponse
import io.swagger.v3.oas.annotations.responses.ApiResponses
import jakarta.validation.Valid
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.RequestBody
import com.sangdol.roomescape.auth.web.support.Public
import com.sangdol.roomescape.auth.web.support.User
import com.sangdol.roomescape.common.dto.CurrentUserContext
import com.sangdol.roomescape.common.dto.response.CommonApiResponse
import com.sangdol.roomescape.user.web.UserContactResponse
import com.sangdol.roomescape.user.web.UserCreateRequest
import com.sangdol.roomescape.user.web.UserCreateResponse
interface UserAPI {

View File

@ -1,13 +1,13 @@
package com.sangdol.roomescape.user.web
import com.sangdol.common.types.web.CommonApiResponse
import com.sangdol.roomescape.auth.web.support.User
import com.sangdol.roomescape.common.dto.CurrentUserContext
import com.sangdol.roomescape.user.business.UserService
import com.sangdol.roomescape.user.docs.UserAPI
import jakarta.validation.Valid
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.*
import com.sangdol.roomescape.auth.web.support.User
import com.sangdol.roomescape.common.dto.CurrentUserContext
import com.sangdol.roomescape.common.dto.response.CommonApiResponse
import com.sangdol.roomescape.user.business.UserService
import com.sangdol.roomescape.user.docs.UserAPI
@RestController
@RequestMapping("/users")

View File

@ -1,18 +1,10 @@
package com.sangdol.roomescape.schedule
import io.kotest.assertions.assertSoftly
import io.kotest.matchers.date.shouldBeBefore
import io.kotest.matchers.shouldBe
import io.kotest.matchers.shouldNotBe
import org.hamcrest.CoreMatchers.equalTo
import org.springframework.data.repository.findByIdOrNull
import org.springframework.http.HttpMethod
import com.sangdol.common.types.audit.Auditor
import com.sangdol.common.types.web.HttpStatus
import com.sangdol.roomescape.admin.infrastructure.persistence.AdminPermissionLevel
import com.sangdol.roomescape.admin.infrastructure.persistence.AdminType
import com.sangdol.roomescape.auth.exception.AuthErrorCode
import com.sangdol.roomescape.common.dto.AuditConstant
import com.sangdol.roomescape.common.dto.OperatorInfo
import com.sangdol.roomescape.schedule.exception.ScheduleErrorCode
import com.sangdol.roomescape.schedule.infrastructure.persistence.ScheduleEntity
import com.sangdol.roomescape.schedule.infrastructure.persistence.ScheduleRepository
@ -21,6 +13,13 @@ import com.sangdol.roomescape.schedule.web.AdminScheduleSummaryResponse
import com.sangdol.roomescape.schedule.web.ScheduleUpdateRequest
import com.sangdol.roomescape.store.infrastructure.persistence.StoreEntity
import com.sangdol.roomescape.supports.*
import io.kotest.assertions.assertSoftly
import io.kotest.matchers.date.shouldBeBefore
import io.kotest.matchers.shouldBe
import io.kotest.matchers.shouldNotBe
import org.hamcrest.CoreMatchers.equalTo
import org.springframework.data.repository.findByIdOrNull
import org.springframework.http.HttpMethod
import java.time.LocalDate
import java.time.LocalTime
@ -267,7 +266,7 @@ class AdminScheduleApiTest(
val schedule: ScheduleEntity = initialize("감사 이력을 남기지 않기 위해, 로그인 없이 일정을 생성한다.") {
dummyInitializer.createSchedule(storeId = store.id, request = ScheduleFixture.createRequest)
}
val unknownOperator: OperatorInfo = AuditConstant.UNKNOWN_OPERATOR
val unknownOperator: Auditor = Auditor.UNKNOWN
runTest(
token = testAuthUtil.defaultHqAdminLogin().second,