Skip to content

Commit

Permalink
refactor: 주차 정보 API Mapper 구조로 리팩토링 #232
Browse files Browse the repository at this point in the history
  • Loading branch information
sanbonai06 committed Sep 19, 2022
1 parent 1781302 commit 087eece
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 26 deletions.
42 changes: 42 additions & 0 deletions src/main/java/com/ceos/bankids/controller/ChallengeController.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,20 @@
import com.ceos.bankids.domain.User;
import com.ceos.bankids.dto.ChallengeDTO;
import com.ceos.bankids.dto.KidChallengeListDTO;
import com.ceos.bankids.dto.KidWeekDTO;
import com.ceos.bankids.dto.WeekDTO;
import com.ceos.bankids.mapper.ChallengeMapper;
import com.ceos.bankids.mapper.request.ChallengeRequest;
import com.ceos.bankids.mapper.request.KidChallengeRequest;
import io.swagger.annotations.ApiOperation;
import java.util.List;
import javax.validation.Valid;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PatchMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
Expand Down Expand Up @@ -81,4 +86,41 @@ public CommonResponse<KidChallengeListDTO> getListKidChallenge(
return CommonResponse.onSuccess(kidChallengeListDTO);
}

@ApiOperation(value = "자녀의 돈길 수락 / 거절")
@PatchMapping(value = "/{challengeId}", produces = "application/json; charset=utf-8")
public CommonResponse<ChallengeDTO> patchChallengeStatus(@AuthenticationPrincipal User authUser,
@PathVariable Long challengeId,
@Valid @RequestBody KidChallengeRequest kidChallengeRequest) {

log.info("api = 자녀의 돈길 수락 / 거절, user = {}, challengeId = {}, 수락여부 = {}",
authUser.getUsername(), challengeId, kidChallengeRequest.getAccept());

ChallengeDTO challengeDTO = challengeMapper.patchChallengeStatus(authUser, challengeId,
kidChallengeRequest);

return CommonResponse.onSuccess(challengeDTO);
}

@ApiOperation(value = "주차 정보 가져오기")
@GetMapping(value = "/progress", produces = "application/json; charset=utf-8")
public CommonResponse<WeekDTO> getWeekInfo(@AuthenticationPrincipal User authUser) {

log.info("api = 주차 정보 가져오기, user = {}", authUser.getUsername());

WeekDTO weekInfo = challengeMapper.getWeekInfo(authUser);

return CommonResponse.onSuccess(weekInfo);
}

@ApiOperation(value = "자녀의 주차 정보 가져오기")
@GetMapping(value = "/kid/progress/{kidId}", produces = "application/json; charset=utf-8")
public CommonResponse<KidWeekDTO> getKidWeekInfo(@AuthenticationPrincipal User authUser,
@PathVariable Long kidId) {

log.info("api = 자녀의 주차 정보 가져오기, user = {}, kid = {}", authUser.getUsername(), kidId);

KidWeekDTO kidWeekInfo = challengeMapper.getKidWeekInfo(authUser, kidId);

return CommonResponse.onSuccess(kidWeekInfo);
}
}
41 changes: 15 additions & 26 deletions src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,13 @@
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import javax.validation.Valid;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PatchMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

@Slf4j
Expand Down Expand Up @@ -88,6 +86,7 @@ public ChallengeDTO postChallenge(User authUser, ChallengeRequest challengeReque
return challengeDTO;
}

// 돈길 삭제 API Mapper
public ChallengeDTO deleteChallenge(User authUser, Long challengeId) {

userRoleValidation(authUser, true);
Expand Down Expand Up @@ -122,6 +121,7 @@ public ChallengeDTO deleteChallenge(User authUser, Long challengeId) {
throw new BadRequestException(ErrorCode.CANT_DELETE_CHALLENGE_STATUS.getErrorCode());
}

// 돈길 리스트 가져오기 API Mapper
public List<ChallengeDTO> getListChallenge(User authUser, String status) {

log.info("api = 돈길 리스트 가져오기, user = {}, status = {}", authUser.getUsername(), status);
Expand Down Expand Up @@ -167,6 +167,7 @@ public List<ChallengeDTO> getListChallenge(User authUser, String status) {
return challengeDTOList;
}

// 자녀의 돈길 리스트 가져오기 API Mapper
public KidChallengeListDTO getListKidChallenge(User authUser, Long kidId, String status) {

Kid kid = kidService.getKid(kidId);
Expand Down Expand Up @@ -208,19 +209,14 @@ public KidChallengeListDTO getListKidChallenge(User authUser, Long kidId, String
}
});
}
KidChallengeListDTO kidChallengeListDTO = new KidChallengeListDTO(kidUser,
return new KidChallengeListDTO(kidUser,
challengeDTOList);
return kidChallengeListDTO;
}

@ApiOperation(value = "자녀의 돈길 수락 / 거절")
@PatchMapping(value = "/{challengeId}", produces = "application/json; charset=utf-8")
public CommonResponse<ChallengeDTO> patchChallengeStatus(@AuthenticationPrincipal User authUser,
@PathVariable Long challengeId,
@Valid @RequestBody KidChallengeRequest kidChallengeRequest) {
// 돈길 수락 / 거절 API Mapper
public ChallengeDTO patchChallengeStatus(User authUser, Long challengeId,
KidChallengeRequest kidChallengeRequest) {

log.info("api = 자녀의 돈길 수락 / 거절, user = {}, challengeId = {}, 수락여부 = {}",
authUser.getUsername(), challengeId, kidChallengeRequest.getAccept());
ChallengeUser challengeUser = challengeUserService.getChallengeUser(challengeId);
User user = challengeUser.getUser();
Challenge challenge = challengeService.readChallenge(challengeId);
Expand All @@ -233,36 +229,30 @@ public CommonResponse<ChallengeDTO> patchChallengeStatus(@AuthenticationPrincipa
kidService.updateKidTotalChallenge(user);
parentService.updateParentAcceptedChallenge(authUser);
notificationService.notification(challenge, user);
return CommonResponse.onSuccess(challengeDTO);
return challengeDTO;
} else {
ChallengeDTO challengeDTO = challengeService.updateChallengeStatusToRejected(challenge,
kidChallengeRequest, authUser);
notificationService.notification(challenge, user);
return CommonResponse.onSuccess(challengeDTO);
return challengeDTO;
}
}

@ApiOperation(value = "주차 정보 가져오기")
@GetMapping(value = "/progress", produces = "application/json; charset=utf-8")
public CommonResponse<WeekDTO> getWeekInfo(@AuthenticationPrincipal User authUser) {
// 주차 정보 가져오기 API Mapper
public WeekDTO getWeekInfo(User authUser) {

log.info("api = 주차 정보 가져오기, user = {}", authUser.getUsername());
List<Challenge> walkingChallengeList = challengeUserService.getChallengeUserList(authUser,
"walking")
.stream()
.filter(challenge -> challenge.getChallengeStatus() == ChallengeStatus.WALKING).collect(
Collectors.toList());
WeekDTO weekDTO = challengeService.readWeekInfo(walkingChallengeList);

return CommonResponse.onSuccess(weekDTO);
return challengeService.readWeekInfo(walkingChallengeList);
}

@ApiOperation(value = "자녀의 주차 정보 가져오기")
@GetMapping(value = "/kid/progress/{kidId}", produces = "application/json; charset=utf-8")
public CommonResponse<KidWeekDTO> getKidWeekInfo(@AuthenticationPrincipal User authUser,
@PathVariable Long kidId) {
// 자녀의 주차 정보 가져오기 API Mapper
public KidWeekDTO getKidWeekInfo(User authUser, Long kidId) {

log.info("api = 자녀의 주차 정보 가져오기, user = {}, kid = {}", authUser.getUsername(), kidId);
Kid kid = kidService.getKid(kidId);
User kidUser = kid.getUser();
familyUserService.checkSameFamily(authUser, kidUser);
Expand All @@ -272,9 +262,8 @@ public CommonResponse<KidWeekDTO> getKidWeekInfo(@AuthenticationPrincipal User a
.filter(challenge -> challenge.getChallengeStatus() == ChallengeStatus.WALKING).collect(
Collectors.toList());
WeekDTO weekDTO = challengeService.readWeekInfo(kidWalkingChallengeList);
KidWeekDTO kidWeekDTO = new KidWeekDTO(kid, weekDTO);

return CommonResponse.onSuccess(kidWeekDTO);
return new KidWeekDTO(kid, weekDTO);
}

@ApiOperation(value = "완주한 돈길 리스트 가져오기")
Expand Down

0 comments on commit 087eece

Please sign in to comment.