refactor(original-series-calculate): 정산 조회 파라미터를 snake_case로 통일한다

This commit is contained in:
2026-04-21 19:15:55 +09:00
parent 6c49abc54e
commit 5098994f4b
2 changed files with 46 additions and 10 deletions

View File

@@ -25,15 +25,15 @@ class AdminOriginalSeriesCalculateController(
@GetMapping("/original-series/settlement-details") @GetMapping("/original-series/settlement-details")
fun getSettlementDetails( fun getSettlementDetails(
@RequestParam("startDate") startDateStr: String, @RequestParam("start_date") startDateStr: String,
@RequestParam("endDate") endDateStr: String, @RequestParam("end_date") endDateStr: String,
@RequestParam memberId: Long, @RequestParam("creator_id") creatorId: Long,
pageable: Pageable pageable: Pageable
) = ApiResponse.ok( ) = ApiResponse.ok(
service.getSettlementDetails( service.getSettlementDetails(
startDateStr = startDateStr, startDateStr = startDateStr,
endDateStr = endDateStr, endDateStr = endDateStr,
memberId = memberId, creatorId = creatorId,
offset = pageable.offset, offset = pageable.offset,
limit = pageable.pageSize.toLong() limit = pageable.pageSize.toLong()
) )
@@ -41,8 +41,8 @@ class AdminOriginalSeriesCalculateController(
@GetMapping("/original-series/settlement-details/excel") @GetMapping("/original-series/settlement-details/excel")
fun downloadSettlementDetailsExcel( fun downloadSettlementDetailsExcel(
@RequestParam("startDate") startDateStr: String, @RequestParam("start_date") startDateStr: String,
@RequestParam("endDate") endDateStr: String @RequestParam("end_date") endDateStr: String
): ResponseEntity<StreamingResponseBody> = createExcelResponse( ): ResponseEntity<StreamingResponseBody> = createExcelResponse(
fileName = "original-series-settlement-details.xlsx", fileName = "original-series-settlement-details.xlsx",
response = service.downloadSettlementDetailsExcel(startDateStr, endDateStr) response = service.downloadSettlementDetailsExcel(startDateStr, endDateStr)

View File

@@ -23,13 +23,14 @@ class AdminOriginalSeriesCalculateControllerTest {
@Test @Test
@DisplayName("관리자 컨트롤러는 오리지널 시리즈 소지 유저 목록을 반환한다") @DisplayName("관리자 컨트롤러는 오리지널 시리즈 소지 유저 목록을 반환한다")
fun shouldReturnOriginalSeriesOwners() { fun shouldReturnOriginalSeriesOwners() {
val owners = listOf(GetAdminOriginalSeriesOwnerResponse(memberId = 1L, nickname = "owner-a")) val owners = listOf(GetAdminOriginalSeriesOwnerResponse(creatorId = 1L, nickname = "owner-a"))
Mockito.`when`(service.getOriginalSeriesOwners()).thenReturn(owners) Mockito.`when`(service.getOriginalSeriesOwners()).thenReturn(owners)
val response = controller.getOriginalSeriesOwners() val response = controller.getOriginalSeriesOwners()
assertEquals(true, response.success) assertEquals(true, response.success)
assertEquals(1, response.data!!.size) assertEquals(1, response.data!!.size)
assertEquals(1L, response.data!![0].creatorId)
assertEquals("owner-a", response.data!![0].nickname) assertEquals("owner-a", response.data!![0].nickname)
Mockito.verify(service).getOriginalSeriesOwners() Mockito.verify(service).getOriginalSeriesOwners()
} }
@@ -55,7 +56,7 @@ class AdminOriginalSeriesCalculateControllerTest {
service.getSettlementDetails( service.getSettlementDetails(
startDateStr = "2026-04-01", startDateStr = "2026-04-01",
endDateStr = "2026-04-30", endDateStr = "2026-04-30",
memberId = 5L, creatorId = 5L,
offset = 10L, offset = 10L,
limit = 10L limit = 10L
) )
@@ -64,7 +65,7 @@ class AdminOriginalSeriesCalculateControllerTest {
val response = controller.getSettlementDetails( val response = controller.getSettlementDetails(
startDateStr = "2026-04-01", startDateStr = "2026-04-01",
endDateStr = "2026-04-30", endDateStr = "2026-04-30",
memberId = 5L, creatorId = 5L,
pageable = PageRequest.of(1, 10) pageable = PageRequest.of(1, 10)
) )
@@ -74,12 +75,47 @@ class AdminOriginalSeriesCalculateControllerTest {
Mockito.verify(service).getSettlementDetails( Mockito.verify(service).getSettlementDetails(
startDateStr = "2026-04-01", startDateStr = "2026-04-01",
endDateStr = "2026-04-30", endDateStr = "2026-04-30",
memberId = 5L, creatorId = 5L,
offset = 10L, offset = 10L,
limit = 10L limit = 10L
) )
} }
@Test
@DisplayName("정산 내역 조회 API는 snake_case 파라미터를 사용한다")
fun shouldUseSnakeCaseQueryParameterNames() {
val method = AdminOriginalSeriesCalculateController::class.java
.getDeclaredMethod(
"getSettlementDetails",
String::class.java,
String::class.java,
java.lang.Long.TYPE,
org.springframework.data.domain.Pageable::class.java
)
val parameters = method.parameters
val requestParamClass = org.springframework.web.bind.annotation.RequestParam::class.java
assertEquals("start_date", parameters[0].getAnnotation(requestParamClass).value)
assertEquals("end_date", parameters[1].getAnnotation(requestParamClass).value)
assertEquals("creator_id", parameters[2].getAnnotation(requestParamClass).value)
}
@Test
@DisplayName("정산 엑셀 다운로드 API는 snake_case 파라미터를 사용한다")
fun shouldUseSnakeCaseQueryParameterNamesForExcel() {
val method = AdminOriginalSeriesCalculateController::class.java
.getDeclaredMethod(
"downloadSettlementDetailsExcel",
String::class.java,
String::class.java
)
val parameters = method.parameters
val requestParamClass = org.springframework.web.bind.annotation.RequestParam::class.java
assertEquals("start_date", parameters[0].getAnnotation(requestParamClass).value)
assertEquals("end_date", parameters[1].getAnnotation(requestParamClass).value)
}
@Test @Test
@DisplayName("관리자 컨트롤러는 오리지널 시리즈 정산 엑셀을 다운로드한다") @DisplayName("관리자 컨트롤러는 오리지널 시리즈 정산 엑셀을 다운로드한다")
fun shouldDownloadOriginalSeriesSettlementExcel() { fun shouldDownloadOriginalSeriesSettlementExcel() {