Skip to content

Commit

Permalink
Merge pull request #138 from Team-Motivoo/fix/#137_api_request_respon…
Browse files Browse the repository at this point in the history
…se_fields

[FIX] API 요청, 응답값 수정
  • Loading branch information
jun02160 authored Mar 9, 2024
2 parents 192f193 + 9e08a75 commit 8adddcf
Show file tree
Hide file tree
Showing 8 changed files with 14 additions and 34 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,13 @@
public record OnboardingResponse (
@JsonProperty("user_id")
Long userId,
@JsonProperty("invite_code")
String inviteCode,
@JsonProperty("exercise_level")
String exerciseLevel
){

public static OnboardingResponse of(final OnboardingResult result) {
return OnboardingResponse.builder()
.userId(result.userId())
.inviteCode(result.inviteCode())
.exerciseLevel(result.exerciseLevel()).build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,11 @@
import java.security.Principal;

import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PatchMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import lombok.RequiredArgsConstructor;
import sopt.org.motivoo.api.controller.mission.dto.request.StepStatusRequest;
import sopt.org.motivoo.api.controller.mission.dto.response.StepStatusResponse;
import sopt.org.motivoo.common.response.ApiResponse;
import sopt.org.motivoo.domain.mission.service.UserMissionService;
Expand All @@ -24,9 +22,9 @@ public class HomeController {

private final UserMissionService userMissionService;

@PatchMapping
public ResponseEntity<ApiResponse<StepStatusResponse>> getMissionCompleted(@RequestBody(required = false) final StepStatusRequest request, final Principal principal) {
@GetMapping
public ResponseEntity<ApiResponse<StepStatusResponse>> getMissionCompleted(final Principal principal) {
return ApiResponse.success(MISSION_STEP_COUNT_STATUS_SUCCESS,
StepStatusResponse.of(userMissionService.getMissionCompleted(request.toServiceDto(), getUserFromPrincipal(principal))));
StepStatusResponse.of(userMissionService.getMissionCompleted(getUserFromPrincipal(principal))));
}
}
11 changes: 4 additions & 7 deletions motivoo-api/src/test/java/controller/HomeControllerTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -61,13 +61,13 @@ void getMissionCompleted() throws Exception {
GET_MISSION_IMAGE_PRE_SIGNED_URL_SUCCESS, response);

// when
when(homeController.getMissionCompleted(request, principal)).thenReturn(result);
when(homeController.getMissionCompleted(principal)).thenReturn(result);

// then
mockMvc.perform(patch(DEFAULT_URL)
mockMvc.perform(get(DEFAULT_URL)
.contentType(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON)
.content(objectMapper.writeValueAsString(request))
// .content(objectMapper.writeValueAsString(request))
.principal(principal)
).andDo(
document("홈 화면 미션 달성 상태 조회 API 성공 Example",
Expand All @@ -77,10 +77,7 @@ void getMissionCompleted() throws Exception {
ResourceSnippetParameters.builder()
.tag(TAG)
.description("홈 화면 조회 시 걸음 수 요청값에 대한 미션 상태 업데이트 결과 및 부모-자녀 유저의 목표 걸음 수 반환")
.requestFields(
fieldWithPath("my_step_count").type(NUMBER).description("자신의 걸음 수"),
fieldWithPath("opponent_step_count").type(NUMBER).description("상대 측(부모/자녀)의 걸음 수")
)
.requestFields()
.responseFields(
fieldWithPath("code").type(NUMBER).description("상태 코드"),
fieldWithPath("message").type(STRING).description("상태 메세지"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,6 @@ void onboardingInputTest() throws Exception {
fieldWithPath("success").type(BOOLEAN).description("응답 성공 여부"),
fieldWithPath("data").description("응답 데이터"),
fieldWithPath("data.user_id").type(NUMBER).description("유저 아이디"),
fieldWithPath("data.invite_code").type(STRING).description("초대 코드"),
fieldWithPath("data.exercise_level").type(STRING).description("유저 분류(초보|중수|고수")
).build()
)
Expand Down
2 changes: 1 addition & 1 deletion motivoo-api/src/test/java/fixture/HealthFixture.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ public static OnboardingResponse createOnboardingResponse(){
val user = UserFixture.createUser();
user.updateParentchild(ParentchildFixture.createParentchild());
val health = HealthFixture.createHealthInfo(user);
return new OnboardingResponse(1L, user.getParentchild().getInviteCode(), health.getExerciseLevel().getValue());
return new OnboardingResponse(1L, health.getExerciseLevel().getValue());
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,9 @@
@Builder
public record OnboardingResult(
Long userId,
String inviteCode,
String exerciseLevel
){

public static OnboardingResult of(User user, Parentchild parentchild, Health health) {
return OnboardingResult.builder()
.userId(user.getId())
.inviteCode(parentchild.getInviteCode())
.exerciseLevel(health.getExerciseLevel().getValue()).build();
}

public static OnboardingResult of(User user, Health health) {
return OnboardingResult.builder()
.userId(user.getId())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,7 @@ public void updateMissionSuccess(UserMission todayMission, final String imgUrl)
todayMission.updateCompletedStatus(CompletedStatus.SUCCESS);
}

public StepStatusResult updateStepStatusResult(User myUser, User opponentUser, StepStatusCommand request) {

int myStep = request.myStepCount();
int opponentStep = request.opponentStepCount();
public StepStatusResult updateStepStatusResult(User myUser, User opponentUser) {

int myGoalStep = 0;
int opponentGoalStep = 0;
Expand All @@ -77,13 +74,13 @@ public StepStatusResult updateStepStatusResult(User myUser, User opponentUser, S
opponentGoalStep = (opponentCurrentUserMission != null && validateTodayDateMission(opponentCurrentUserMission)) ?
opponentCurrentUserMission.getMission().getStepCount() : 0;
assert opponentCurrentUserMission != null;
isStepCountCompleted(opponentStep, opponentCurrentUserMission);
// isStepCountCompleted(opponentStep, opponentCurrentUserMission);
}

if (!myUserMissionsEmpty) {
UserMission todayMission = myUser.getCurrentUserMission();
myGoalStep = todayMission.getMission().getStepCount();
boolean stepCountCompleted = isStepCountCompleted(myStep, todayMission);
// boolean stepCountCompleted = isStepCountCompleted(myStep, todayMission);

return StepStatusResult.of(myUser, opponentUser, myGoalStep, opponentGoalStep, todayMission.getCompletedStatus().equals(STEP_COMPLETED),
todayMission.getImgUrl() != null);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -137,11 +137,11 @@ private void validateTodayMissionRequest(Long missionId, User user) {
}

@Transactional
public StepStatusResult getMissionCompleted(final StepStatusCommand request, final Long userId) {
public StepStatusResult getMissionCompleted(final Long userId) {
User myUser = userRetriever.getUserById(userId);
User opponentUser = userRetriever.getMatchedUserWith(myUser);

return userMissionManager.updateStepStatusResult(myUser, opponentUser, request);
return userMissionManager.updateStepStatusResult(myUser, opponentUser);
}

// 유저-목표 걸음수(오늘의 미션을 선정한 경우에 한하여)
Expand Down

0 comments on commit 8adddcf

Please sign in to comment.