Skip to content

Commit

Permalink
Refactor : 코드 분류에 맞춰 리팩토링 진행
Browse files Browse the repository at this point in the history
  • Loading branch information
daydeuk committed Apr 17, 2023
1 parent 3a7311a commit 53dde6d
Show file tree
Hide file tree
Showing 20 changed files with 738 additions and 664 deletions.
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package com.example.challengeservice.client;


import com.example.challengeservice.client.dto.BaekjoonListResponseDto;
import com.example.challengeservice.client.dto.CommitResponseDto;
import com.example.challengeservice.client.dto.DateProblemResponseDto;
import com.example.challengeservice.client.dto.UserResponseDto;
import com.example.challengeservice.common.result.ListResult;
import com.example.challengeservice.common.result.SingleResult;
import com.example.challengeservice.dto.request.CommitRequestDto;
import com.example.challengeservice.dto.request.ProblemRequestDto;
import com.example.challengeservice.dto.response.BaekjoonListResponseDto;
import com.example.challengeservice.dto.response.CommitResponseDto;
import com.example.challengeservice.dto.response.DateProblemResponseDto;
import com.example.challengeservice.dto.response.UserResponseDto;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

Expand All @@ -25,10 +25,10 @@ public interface UserServiceClient {

@GetMapping("/user/baekjoon/date/{userId}")
ListResult<DateProblemResponseDto> getDateBaekjoonList(@PathVariable Long userId,
@RequestParam("startDate") String startDate,@RequestParam("endDate") String endDate);
@RequestParam("startDate") String startDate, @RequestParam("endDate") String endDate);
@GetMapping("/user/commit/{userId}/{commitDate}")
SingleResult<CommitResponseDto> getCommitRecord(@PathVariable("userId") Long userId,
@PathVariable("commitDate") String commitDate);
@PathVariable("commitDate") String commitDate);
@PostMapping("/user/commit/{userId}")
SingleResult<?> updateCommitCount(@PathVariable Long userId,
@RequestBody CommitRequestDto requestDto);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.example.challengeservice.dto.response;
package com.example.challengeservice.client.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.example.challengeservice.dto.response;
package com.example.challengeservice.client.dto;


import lombok.AllArgsConstructor;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.example.challengeservice.dto.response;
package com.example.challengeservice.client.dto;

import lombok.AllArgsConstructor;
import lombok.Getter;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.example.challengeservice.dto.response;
package com.example.challengeservice.client.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
package com.example.challengeservice.controller;

import com.example.challengeservice.common.response.ResponseService;
import com.example.challengeservice.common.result.Result;
import com.example.challengeservice.common.result.SingleResult;
import com.example.challengeservice.dto.response.SolvedListResponseDto;
import com.example.challengeservice.service.algo.AlgoChallengeService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/challenges")
@Slf4j
@RequiredArgsConstructor
public class AlgoController {
private ResponseService responseService;
private AlgoChallengeService algoChallengeService;

/**
* 신대득
* 유저 백준 아이디를 통해 해당 유저의 푼 문제 리스트 찾기 (크롤링)
* 나온 결과를 계산해서 user에 넣어줘야한다.
*/
@GetMapping("/baekjoon/{baekjoonId}")
public SingleResult<SolvedListResponseDto> solvedProblemList(@PathVariable("baekjoonId") String baekjoonId){
return responseService.getSingleResult(algoChallengeService.solvedProblemList(baekjoonId));
}

/**
* 신대득
* 선택한 유저가
* 해당 날짜에 푼 문제를 조회하는 API
* @param userId // 조회 할 유저의 id
* @param selectDate // 조회 할 날짜
* @return
*/
@GetMapping("/baekjoon/users/date")
public SingleResult<SolvedListResponseDto> checkDateUserBaekjoon(@RequestParam Long userId, @RequestParam String selectDate){
return responseService.getSingleResult(algoChallengeService.checkDateUserBaekjoon(userId, selectDate));
}

/**
* 신대득
* 유저가 푼 문제 리스트 갱신
*/
@PostMapping("/baekjoon/update/users/{userId}")
public Result updateUserBaekjoon(@PathVariable String userId){
algoChallengeService.updateUserBaekjoon(Long.parseLong(userId));
return responseService.getSuccessResult();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,9 @@
import com.example.challengeservice.dto.response.*;
import com.example.challengeservice.exception.ApiException;
import com.example.challengeservice.exception.ExceptionEnum;
import com.example.challengeservice.service.ChallengeService;
import com.example.challengeservice.service.algo.AlgoChallengeService;
import com.example.challengeservice.service.challenge.BasicChallengeService;
import com.example.challengeservice.service.commit.CommitChallengeService;
import com.example.challengeservice.service.photo.PhotoChallengeService;
import com.example.challengeservice.validator.DateValidator;
import lombok.RequiredArgsConstructor;
Expand All @@ -32,11 +33,12 @@
@RequiredArgsConstructor
public class AuthController {
private final ResponseService responseService;
private final ChallengeService challengeService;
private static final String USER_ID = "userId";
private final PhotoChallengeService photoChallengeService;

private final BasicChallengeService basicChallengeService;
private final AlgoChallengeService algoChallengeService;
private final CommitChallengeService commitChallengeService;

/**
* 챌린지방 생성
Expand Down Expand Up @@ -134,7 +136,7 @@ public ListResult<RecordResponseDto> getTeamChallengeRecord(HttpServletRequest r
@GetMapping("/baekjoon/users/recent")
public SingleResult<SolvedMapResponseDto> getRecentUserBaekjoon(HttpServletRequest request){
Long userId = Long.parseLong(request.getHeader(USER_ID));
return responseService.getSingleResult(challengeService.getRecentUserBaekjoon(userId));
return responseService.getSingleResult(algoChallengeService.getRecentUserBaekjoon(userId));
}

/**
Expand All @@ -145,7 +147,7 @@ public SingleResult<SolvedMapResponseDto> getRecentUserBaekjoon(HttpServletReque
@GetMapping("/commit/users/recent")
public SingleResult<SolvedMapResponseDto> getRecentUserCommit(HttpServletRequest request){
Long userId = Long.parseLong(request.getHeader(USER_ID));
return responseService.getSingleResult(challengeService.getRecentUserCommit(userId));
return responseService.getSingleResult(commitChallengeService.getRecentUserCommit(userId));
}

/**
Expand All @@ -157,7 +159,7 @@ public SingleResult<SolvedMapResponseDto> getRecentUserCommit(HttpServletRequest
@GetMapping("/baekjoon/users/progress/{challengeId}")
public ProgressResponseDto getProgressUserBaekjoon(HttpServletRequest request, @PathVariable String challengeId){
Long userId = Long.parseLong(request.getHeader(USER_ID));
return challengeService.getProgressUserBaekjoon(userId, Long.parseLong(challengeId));
return algoChallengeService.getProgressUserBaekjoon(userId, Long.parseLong(challengeId));
}

/**
Expand All @@ -167,7 +169,7 @@ public ProgressResponseDto getProgressUserBaekjoon(HttpServletRequest request, @
@PostMapping("/certification/users/{challengeId}")
public CertificationResponseDto getCertification(HttpServletRequest request, @PathVariable String challengeId){
Long userId= Long.parseLong(request.getHeader(USER_ID));
return challengeService.getCertification(userId, Long.parseLong(challengeId));
return basicChallengeService.getCertification(userId, Long.parseLong(challengeId));
}


Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,13 @@
package com.example.challengeservice.controller;

import com.example.challengeservice.client.PayServiceClient;
import com.example.challengeservice.common.response.ResponseService;
import com.example.challengeservice.common.result.ListResult;
import com.example.challengeservice.common.result.Result;
import com.example.challengeservice.common.result.SingleResult;
import com.example.challengeservice.dto.response.ChallengeRoomResponseDto;
import com.example.challengeservice.dto.response.SimpleChallengeResponseDto;
import com.example.challengeservice.dto.response.*;
import com.example.challengeservice.dto.response.SolvedListResponseDto;
import com.example.challengeservice.infra.amazons3.service.AmazonS3Service;
import com.example.challengeservice.service.ChallengeService;
import com.example.challengeservice.service.SchedulerService;
import com.example.challengeservice.service.challenge.BasicChallengeService;
import lombok.RequiredArgsConstructor;
Expand All @@ -30,7 +27,6 @@
@RequiredArgsConstructor
public class ChallengeController {
private final ResponseService responseService;
private final ChallengeService challengeService;
private final AmazonS3Service s3Service;

private final SchedulerService schedulerService;
Expand Down Expand Up @@ -68,40 +64,6 @@ public SingleResult<Map<Long, ChallengeInfoResponseDto>> challengeInfoList(@Requ
}


/** 신대득
* 유저 백준 아이디를 통해 해당 유저의 푼 문제 리스트 찾기 (크롤링)
* 나온 결과를 계산해서 user에 넣어줘야한다.
* Todo : userId로 baekjoonId 가져오는걸로 바꾸기
*/
@GetMapping("/baekjoon/{baekjoonId}")
public SingleResult<SolvedListResponseDto> solvedProblemList(@PathVariable("baekjoonId") String baekjoonId){
return responseService.getSingleResult(challengeService.solvedProblemList(baekjoonId));
}

/**
* 신대득
* 선택한 유저가
* 해당 날짜에 푼 문제를 조회하는 API
* @param userId // 조회 할 유저의 id
* @param selectDate // 조회 할 날짜
* @return
*/
@GetMapping("/baekjoon/users/date")
public SingleResult<SolvedListResponseDto> checkDateUserBaekjoon(@RequestParam Long userId, @RequestParam String selectDate){
return responseService.getSingleResult(challengeService.checkDateUserBaekjoon(userId, selectDate));
}

/**
* 유저의 커밋 정보 조회
* @param userId
* @param selectDate
* @return
*/
@GetMapping("/commit/users/date")
public SingleResult<CommitResponseDto> checkDateUserCommit(@RequestParam Long userId, @RequestParam String selectDate){
return responseService.getSingleResult(challengeService.checkDateUserCommit(userId, selectDate));
}

/**
* @author 신대득
* 현재 user가 참가중인 챌린지 개수 반환
Expand All @@ -112,36 +74,23 @@ public SingleResult<UserChallengeInfoResponseDto> userChallengeInfo(@PathVariabl

}

/**
* @author 신대득
* 스케줄러로 실행되는 일일 기록 저장의 테스트 API
* @return
*/
@GetMapping("/test/record")
public Result testRecord (){
challengeService.createDailyRecord();
return responseService.getSuccessResult();
}

/**
* @author 신대득
* 스케줄러로 실행되는 일일 정산의 테스트 API
* @return
*/
@GetMapping("/test/payment")
public Result testPayment (){
challengeService.culcDailyPayment();
return responseService.getSuccessResult();
}


/** 기본 사진 업로드 **/
@PostMapping("upload/image")
public String updateDefaultImage(@RequestParam("file") MultipartFile multipartFile , @RequestParam("dir") String dir) throws IOException{

return s3Service.upload(multipartFile,dir);
}

/**
* 해당 챌린지 방
* 모든 유저의 정보 갱신
*/
@PostMapping("/update/room/{challengeId}")
public Result updateChallengeRoom(@PathVariable Long challengeId){
basicChallengeService.updateChallengeRoom(challengeId);
return responseService.getSuccessResult();
}

/**
* @author 신대득
* 챌린지내에서 1등부터 차례대로 랭킹을 반환하는 API
Expand All @@ -150,26 +99,28 @@ public String updateDefaultImage(@RequestParam("file") MultipartFile multipartFi
*/
@GetMapping("baekjoon/rank/{challengeId}")
public ListResult<RankResponseDto> getTopRank(@PathVariable String challengeId){
return responseService.getListResult(challengeService.getTopRank(Long.parseLong(challengeId)));
return responseService.getListResult(basicChallengeService.getTopRank(Long.parseLong(challengeId)));
}

/**
* 신대득
* 유저가 푼 문제 리스트 갱신
* @author 신대득
* 스케줄러로 실행되는 일일 기록 저장의 테스트 API
* @return
*/
@PostMapping("/baekjoon/update/users/{userId}")
public Result updateUserBaekjoon(@PathVariable String userId){
challengeService.updateUserBaekjoon(Long.parseLong(userId));
@GetMapping("/test/record")
public Result testRecord (){
schedulerService.createDailyRecord();
return responseService.getSuccessResult();
}

/**
* 해당 챌린지 방
* 모든 유저의 푼 문제 리스트 갱신
* @author 신대득
* 스케줄러로 실행되는 일일 정산의 테스트 API
* @return
*/
@PostMapping("/baekjoon/update/room/{challengeId}")
public Result updateChallengeRoom(@PathVariable Long challengeId){
challengeService.updateChallengeRoom(challengeId);
@GetMapping("/test/payment")
public Result testPayment (){
schedulerService.culcDailyPayment();
return responseService.getSuccessResult();
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
package com.example.challengeservice.controller;

import com.example.challengeservice.client.dto.CommitResponseDto;
import com.example.challengeservice.common.response.ResponseService;
import com.example.challengeservice.common.result.Result;
import com.example.challengeservice.common.result.SingleResult;
import com.example.challengeservice.dto.response.CommitCountResponseDto;
import com.example.challengeservice.service.ChallengeService;
import com.example.challengeservice.service.commit.CommitChallengeService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
Expand All @@ -17,8 +18,7 @@
@RequiredArgsConstructor
public class CommitController {
private final ResponseService responseService;

private final ChallengeService challengeService;
private final CommitChallengeService commitChallengeService;

/**
* 신대득
Expand All @@ -27,7 +27,7 @@ public class CommitController {
*/
@GetMapping("/github/{githubId}")
public SingleResult<CommitCountResponseDto> getGithubList(@PathVariable("githubId") String githubId){
return responseService.getSingleResult(challengeService.getGithubCommit(githubId));
return responseService.getSingleResult(commitChallengeService.getGithubCommit(githubId));
}

/**
Expand All @@ -37,10 +37,21 @@ public SingleResult<CommitCountResponseDto> getGithubList(@PathVariable("githubI
@PostMapping("/github/update/users")
public Result updateUserBaekjoon(HttpServletRequest request){
Long userId=Long.parseLong(request.getHeader("userId"));
challengeService.updateUserCommit(userId);
commitChallengeService.updateUserCommit(userId);
return responseService.getSuccessResult();
}

/**
* 유저의 커밋 정보 조회
* @param userId
* @param selectDate
* @return
*/
@GetMapping("/commit/users/date")
public SingleResult<CommitResponseDto> checkDateUserCommit(@RequestParam Long userId, @RequestParam String selectDate){
return responseService.getSingleResult(commitChallengeService.checkDateUserCommit(userId, selectDate));
}



}
Loading

0 comments on commit 53dde6d

Please sign in to comment.