generated from pricelees/issue-pr-template
refactor: \@AdminOnly에 기본 타입(STORE) 지정 - HQ 권한이 필요한 경우에만
This commit is contained in:
parent
d9ef3b0305
commit
ccac362551
@ -6,7 +6,7 @@ import roomescape.admin.infrastructure.persistence.Privilege
|
|||||||
@Target(AnnotationTarget.FUNCTION)
|
@Target(AnnotationTarget.FUNCTION)
|
||||||
@Retention(AnnotationRetention.RUNTIME)
|
@Retention(AnnotationRetention.RUNTIME)
|
||||||
annotation class AdminOnly(
|
annotation class AdminOnly(
|
||||||
val type: AdminType,
|
val type: AdminType = AdminType.STORE,
|
||||||
val privilege: Privilege
|
val privilege: Privilege
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@ -9,7 +9,6 @@ import org.springframework.http.ResponseEntity
|
|||||||
import org.springframework.web.bind.annotation.PathVariable
|
import org.springframework.web.bind.annotation.PathVariable
|
||||||
import org.springframework.web.bind.annotation.RequestBody
|
import org.springframework.web.bind.annotation.RequestBody
|
||||||
import org.springframework.web.bind.annotation.RequestParam
|
import org.springframework.web.bind.annotation.RequestParam
|
||||||
import roomescape.admin.infrastructure.persistence.AdminType
|
|
||||||
import roomescape.admin.infrastructure.persistence.Privilege
|
import roomescape.admin.infrastructure.persistence.Privilege
|
||||||
import roomescape.auth.web.support.AdminOnly
|
import roomescape.auth.web.support.AdminOnly
|
||||||
import roomescape.auth.web.support.Public
|
import roomescape.auth.web.support.Public
|
||||||
@ -54,21 +53,21 @@ interface ScheduleAPI {
|
|||||||
@PathVariable("id") id: Long
|
@PathVariable("id") id: Long
|
||||||
): ResponseEntity<CommonApiResponse<Unit>>
|
): ResponseEntity<CommonApiResponse<Unit>>
|
||||||
|
|
||||||
@AdminOnly(type = AdminType.STORE, privilege = Privilege.READ_DETAIL)
|
@AdminOnly(privilege = Privilege.READ_DETAIL)
|
||||||
@Operation(summary = "일정 상세 조회", tags = ["관리자 로그인이 필요한 API"])
|
@Operation(summary = "일정 상세 조회", tags = ["관리자 로그인이 필요한 API"])
|
||||||
@ApiResponses(ApiResponse(responseCode = "200", description = "감사 정보를 포함하여 일정 상세 조회", useReturnTypeSchema = true))
|
@ApiResponses(ApiResponse(responseCode = "200", description = "감사 정보를 포함하여 일정 상세 조회", useReturnTypeSchema = true))
|
||||||
fun findScheduleDetail(
|
fun findScheduleDetail(
|
||||||
@PathVariable("id") id: Long
|
@PathVariable("id") id: Long
|
||||||
): ResponseEntity<CommonApiResponse<ScheduleDetailResponse>>
|
): ResponseEntity<CommonApiResponse<ScheduleDetailResponse>>
|
||||||
|
|
||||||
@AdminOnly(type = AdminType.STORE, privilege = Privilege.CREATE)
|
@AdminOnly(privilege = Privilege.CREATE)
|
||||||
@Operation(summary = "일정 생성", tags = ["관리자 로그인이 필요한 API"])
|
@Operation(summary = "일정 생성", tags = ["관리자 로그인이 필요한 API"])
|
||||||
@ApiResponses(ApiResponse(responseCode = "200", description = "성공", useReturnTypeSchema = true))
|
@ApiResponses(ApiResponse(responseCode = "200", description = "성공", useReturnTypeSchema = true))
|
||||||
fun createSchedule(
|
fun createSchedule(
|
||||||
@Valid @RequestBody request: ScheduleCreateRequest
|
@Valid @RequestBody request: ScheduleCreateRequest
|
||||||
): ResponseEntity<CommonApiResponse<ScheduleCreateResponse>>
|
): ResponseEntity<CommonApiResponse<ScheduleCreateResponse>>
|
||||||
|
|
||||||
@AdminOnly(type = AdminType.STORE, privilege = Privilege.UPDATE)
|
@AdminOnly(privilege = Privilege.UPDATE)
|
||||||
@Operation(summary = "일정 수정", tags = ["관리자 로그인이 필요한 API"])
|
@Operation(summary = "일정 수정", tags = ["관리자 로그인이 필요한 API"])
|
||||||
@ApiResponses(ApiResponse(responseCode = "200", description = "성공", useReturnTypeSchema = true))
|
@ApiResponses(ApiResponse(responseCode = "200", description = "성공", useReturnTypeSchema = true))
|
||||||
fun updateSchedule(
|
fun updateSchedule(
|
||||||
@ -76,7 +75,7 @@ interface ScheduleAPI {
|
|||||||
@Valid @RequestBody request: ScheduleUpdateRequest
|
@Valid @RequestBody request: ScheduleUpdateRequest
|
||||||
): ResponseEntity<CommonApiResponse<Unit>>
|
): ResponseEntity<CommonApiResponse<Unit>>
|
||||||
|
|
||||||
@AdminOnly(type = AdminType.STORE, privilege = Privilege.DELETE)
|
@AdminOnly(privilege = Privilege.DELETE)
|
||||||
@Operation(summary = "일정 삭제", tags = ["관리자 로그인이 필요한 API"])
|
@Operation(summary = "일정 삭제", tags = ["관리자 로그인이 필요한 API"])
|
||||||
@ApiResponses(ApiResponse(responseCode = "204", description = "성공", useReturnTypeSchema = true))
|
@ApiResponses(ApiResponse(responseCode = "204", description = "성공", useReturnTypeSchema = true))
|
||||||
fun deleteSchedule(
|
fun deleteSchedule(
|
||||||
|
|||||||
@ -8,7 +8,6 @@ import jakarta.validation.Valid
|
|||||||
import org.springframework.http.ResponseEntity
|
import org.springframework.http.ResponseEntity
|
||||||
import org.springframework.web.bind.annotation.PathVariable
|
import org.springframework.web.bind.annotation.PathVariable
|
||||||
import org.springframework.web.bind.annotation.RequestBody
|
import org.springframework.web.bind.annotation.RequestBody
|
||||||
import roomescape.admin.infrastructure.persistence.AdminType
|
|
||||||
import roomescape.admin.infrastructure.persistence.Privilege
|
import roomescape.admin.infrastructure.persistence.Privilege
|
||||||
import roomescape.auth.web.support.AdminOnly
|
import roomescape.auth.web.support.AdminOnly
|
||||||
import roomescape.auth.web.support.Public
|
import roomescape.auth.web.support.Public
|
||||||
@ -17,27 +16,27 @@ import roomescape.theme.web.*
|
|||||||
|
|
||||||
@Tag(name = "5. 관리자 테마 API", description = "관리자 페이지에서 테마를 조회 / 추가 / 삭제할 때 사용합니다.")
|
@Tag(name = "5. 관리자 테마 API", description = "관리자 페이지에서 테마를 조회 / 추가 / 삭제할 때 사용합니다.")
|
||||||
interface ThemeAPIV2 {
|
interface ThemeAPIV2 {
|
||||||
@AdminOnly(type = AdminType.STORE, privilege = Privilege.READ_SUMMARY)
|
@AdminOnly(privilege = Privilege.READ_SUMMARY)
|
||||||
@Operation(summary = "모든 테마 조회", description = "관리자 페이지에서 요약된 테마 목록을 조회합니다.", tags = ["관리자 로그인이 필요한 API"])
|
@Operation(summary = "모든 테마 조회", description = "관리자 페이지에서 요약된 테마 목록을 조회합니다.", tags = ["관리자 로그인이 필요한 API"])
|
||||||
@ApiResponses(ApiResponse(responseCode = "200", description = "성공", useReturnTypeSchema = true))
|
@ApiResponses(ApiResponse(responseCode = "200", description = "성공", useReturnTypeSchema = true))
|
||||||
fun findAdminThemes(): ResponseEntity<CommonApiResponse<AdminThemeSummaryListResponse>>
|
fun findAdminThemes(): ResponseEntity<CommonApiResponse<AdminThemeSummaryListResponse>>
|
||||||
|
|
||||||
@AdminOnly(type = AdminType.STORE, privilege = Privilege.READ_DETAIL)
|
@AdminOnly(privilege = Privilege.READ_DETAIL)
|
||||||
@Operation(summary = "테마 상세 조회", description = "해당 테마의 상세 정보를 조회합니다.", tags = ["관리자 로그인이 필요한 API"])
|
@Operation(summary = "테마 상세 조회", description = "해당 테마의 상세 정보를 조회합니다.", tags = ["관리자 로그인이 필요한 API"])
|
||||||
@ApiResponses(ApiResponse(responseCode = "200", description = "성공", useReturnTypeSchema = true))
|
@ApiResponses(ApiResponse(responseCode = "200", description = "성공", useReturnTypeSchema = true))
|
||||||
fun findAdminThemeDetail(@PathVariable("id") id: Long): ResponseEntity<CommonApiResponse<AdminThemeDetailResponse>>
|
fun findAdminThemeDetail(@PathVariable("id") id: Long): ResponseEntity<CommonApiResponse<AdminThemeDetailResponse>>
|
||||||
|
|
||||||
@AdminOnly(type = AdminType.STORE, privilege = Privilege.CREATE)
|
@AdminOnly(privilege = Privilege.CREATE)
|
||||||
@Operation(summary = "테마 추가", tags = ["관리자 로그인이 필요한 API"])
|
@Operation(summary = "테마 추가", tags = ["관리자 로그인이 필요한 API"])
|
||||||
@ApiResponses(ApiResponse(responseCode = "200", description = "성공", useReturnTypeSchema = true))
|
@ApiResponses(ApiResponse(responseCode = "200", description = "성공", useReturnTypeSchema = true))
|
||||||
fun createTheme(@Valid @RequestBody themeCreateRequest: ThemeCreateRequest): ResponseEntity<CommonApiResponse<ThemeCreateResponseV2>>
|
fun createTheme(@Valid @RequestBody themeCreateRequest: ThemeCreateRequest): ResponseEntity<CommonApiResponse<ThemeCreateResponseV2>>
|
||||||
|
|
||||||
@AdminOnly(type = AdminType.STORE, privilege = Privilege.DELETE)
|
@AdminOnly(privilege = Privilege.DELETE)
|
||||||
@Operation(summary = "테마 삭제", tags = ["관리자 로그인이 필요한 API"])
|
@Operation(summary = "테마 삭제", tags = ["관리자 로그인이 필요한 API"])
|
||||||
@ApiResponses(ApiResponse(responseCode = "204", description = "성공", useReturnTypeSchema = true))
|
@ApiResponses(ApiResponse(responseCode = "204", description = "성공", useReturnTypeSchema = true))
|
||||||
fun deleteTheme(@PathVariable id: Long): ResponseEntity<CommonApiResponse<Unit>>
|
fun deleteTheme(@PathVariable id: Long): ResponseEntity<CommonApiResponse<Unit>>
|
||||||
|
|
||||||
@AdminOnly(type = AdminType.STORE, privilege = Privilege.UPDATE)
|
@AdminOnly(privilege = Privilege.UPDATE)
|
||||||
@Operation(summary = "테마 수정", tags = ["관리자 로그인이 필요한 API"])
|
@Operation(summary = "테마 수정", tags = ["관리자 로그인이 필요한 API"])
|
||||||
@ApiResponses(ApiResponse(responseCode = "200", description = "성공", useReturnTypeSchema = true))
|
@ApiResponses(ApiResponse(responseCode = "200", description = "성공", useReturnTypeSchema = true))
|
||||||
fun updateTheme(
|
fun updateTheme(
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user