Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
Expand Down Expand Up @@ -44,11 +43,4 @@ public ResponseEntity<Void> deleteDevice(
memberService.deleteDevice(input);
return ResponseEntity.noContent().build();
}

private String getResolvedIdentifier(final String identifier, final String headerIdentifier) {
if (headerIdentifier == null) {
return identifier;
}
return headerIdentifier;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
Expand Down Expand Up @@ -46,18 +45,10 @@ public ResponseEntity<MemberFindResponse> findAllMemberDevices(
@RequestParam(name = "email") final String email,
@AuthDevice final DeviceIdentifier identifier
) {
final String resolvedIdentifier = getResolvedIdentifier(identifier, headerIdentifier);

final MemberFindInput input = MemberFindInput.from(email, resolvedIdentifier);
final MemberFindInput input = MemberFindInput.from(email, identifier);
final MemberFindOutput output = memberService.findAllMemberDevices(input);
final MemberFindResponse response = MemberFindResponse.from(output);
return ResponseEntity.ok(response);
}

private String getResolvedIdentifier(final String identifier, final String headerIdentifier) {
if (headerIdentifier == null) {
return identifier;
}
return headerIdentifier;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -479,7 +479,7 @@ void deleteDevice_NullTargetIdentifier() {
void deleteDevice_WithHeader() {
// given
final String headerIdentifier = "device-id";
final DeviceDeleteRequest request = new DeviceDeleteRequest("test@test.com", null, "target-id");
final DeviceDeleteRequest request = new DeviceDeleteRequest("test@test.com", "target-device-id");

doNothing().when(memberService).deleteDevice(any());

Expand All @@ -496,8 +496,6 @@ void deleteDevice_WithHeader() {
)
.requestFields(
fieldWithPath("email").type(JsonFieldType.STRING).description("이메일"),
fieldWithPath("identifier").type(JsonFieldType.STRING)
.description("디바이스 식별자 (deprecated, 헤더 사용 권장)").optional(),
fieldWithPath("targetIdentifier").type(JsonFieldType.STRING)
.description("삭제할 디바이스 식별자")
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -170,48 +170,4 @@ void saveReview_InactiveDevice() {
.statusCode(HttpStatus.UNAUTHORIZED.value())
.body("message", equalTo("인증되지 않은 디바이스입니다"));
}

@Test
@DisplayName("헤더로 디바이스 인증하여 리뷰를 저장하면 201 응답을 반환한다")
void saveReview_WithHeader() {
// given
final String identifier = "device-id";
final String url = "https://test.com";
final ReviewSaveRequest request = new ReviewSaveRequest(null, url);
final ReviewSaveOutput output = ReviewSaveOutput.of(ReviewURL.from(url), List.of(LocalDateTime.now()));

given(reviewService.saveReview(any())).willReturn(output);

// when
// then
given(this.spec)
.filter(document(DEFAULT_REST_DOC_PATH,
builder()
.tag("Review")
.summary("리뷰 저장")
.description("헤더로 디바이스 인증하여 리뷰를 저장하면 201 응답을 반환한다")
.requestHeaders(
headerWithName("X-Device-Id").description("디바이스 식별자")
)
.requestFields(
fieldWithPath("identifier").type(JsonFieldType.STRING)
.description("디바이스 식별자 (deprecated, 헤더 사용 권장)").optional(),
fieldWithPath("url").type(JsonFieldType.STRING)
.description("리뷰할 URL")
)
.responseFields(
fieldWithPath("url").type(JsonFieldType.STRING).description("리뷰할 URL"),
fieldWithPath("scheduledAts").type(JsonFieldType.ARRAY)
.description("복습 예정 일시 목록")
)
))
.contentType(MediaType.APPLICATION_JSON_VALUE)
.header("X-Device-Id", identifier)
.body(request)
.when()
.post("/api/v1/reviews")
.then()
.statusCode(HttpStatus.CREATED.value())
.body("url", equalTo(url));
}
}