From 1aad2518c0259741f545fd860830c484f1812263 Mon Sep 17 00:00:00 2001 From: Ryula Date: Sat, 25 Nov 2023 17:44:57 +0900 Subject: [PATCH] =?UTF-8?q?[feat]=20=EC=9A=B4=EB=8F=99=20=EB=A3=A8?= =?UTF-8?q?=ED=8B=B4=20=EC=99=84=EB=A3=8C=20api=20=EC=99=84=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/inha/how/Config/BaseResponseStatus.java | 2 ++ .../java/inha/how/Controller/RoutineController.java | 11 +++++++++++ .../Domain/dto/routine/RoutineMeDetailMapping.java | 1 + src/main/java/inha/how/Domain/entity/MyRoutine.java | 3 +++ src/main/java/inha/how/Service/RoutineService.java | 8 ++++++++ 5 files changed, 25 insertions(+) diff --git a/src/main/java/inha/how/Config/BaseResponseStatus.java b/src/main/java/inha/how/Config/BaseResponseStatus.java index b004ccb..972c564 100644 --- a/src/main/java/inha/how/Config/BaseResponseStatus.java +++ b/src/main/java/inha/how/Config/BaseResponseStatus.java @@ -30,6 +30,8 @@ public enum BaseResponseStatus { CALENDAR_NOT_FOUND(false, 2012, "해당하는 달력을 찾을 수 없습니다."), + MY_ROUTINE_NOT_FOUND(false, 2012, "해당하는 내 루틴을 찾을 수 없습니다."), + // [POST] /users POST_USERS_EMPTY_EMAIL(false, 2015, "이메일을 입력해주세요."), POST_USERS_INVALID_EMAIL(false, 2016, "이메일 형식을 확인해주세요."), diff --git a/src/main/java/inha/how/Controller/RoutineController.java b/src/main/java/inha/how/Controller/RoutineController.java index 7a4e859..0d8d3d0 100644 --- a/src/main/java/inha/how/Controller/RoutineController.java +++ b/src/main/java/inha/how/Controller/RoutineController.java @@ -10,6 +10,7 @@ import io.jsonwebtoken.Claims; import io.jsonwebtoken.Jws; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; @@ -68,4 +69,14 @@ public BaseResponse RoutineMeSave(@RequestHeader("Authorization") String jws, @R return new BaseResponse(); } + + @Operation(summary = "내 운동 루틴 실행 완료", description = "운동 루틴을 실행을 완료할 때 사용하는 api다. 운동 횟수가 올라간다.") + @Parameter(name = "id", description = "나의 운동 루틴 id") + @GetMapping("/{id}/me") + public BaseResponse RoutineMeComplete(@RequestHeader("Authorization") String jws, @PathVariable(name = "id") Long id){ + User user = userService.validUser(jws); + routineService.CompleteRoutine(id); + + return new BaseResponse(); + } } diff --git a/src/main/java/inha/how/Domain/dto/routine/RoutineMeDetailMapping.java b/src/main/java/inha/how/Domain/dto/routine/RoutineMeDetailMapping.java index 3f5a9eb..3bb4e78 100644 --- a/src/main/java/inha/how/Domain/dto/routine/RoutineMeDetailMapping.java +++ b/src/main/java/inha/how/Domain/dto/routine/RoutineMeDetailMapping.java @@ -7,6 +7,7 @@ public interface RoutineMeDetailMapping { + Long getId(); Long getRoutineId(); String getRoutineSubject(); Integer getCount(); diff --git a/src/main/java/inha/how/Domain/entity/MyRoutine.java b/src/main/java/inha/how/Domain/entity/MyRoutine.java index 30c186b..2c7c5f7 100644 --- a/src/main/java/inha/how/Domain/entity/MyRoutine.java +++ b/src/main/java/inha/how/Domain/entity/MyRoutine.java @@ -25,4 +25,7 @@ public class MyRoutine extends BaseTimeEntity{ private Routine routine; private Integer count; + public void increaseCnt(){ + this.count++; + } } diff --git a/src/main/java/inha/how/Service/RoutineService.java b/src/main/java/inha/how/Service/RoutineService.java index c86f170..c690b62 100644 --- a/src/main/java/inha/how/Service/RoutineService.java +++ b/src/main/java/inha/how/Service/RoutineService.java @@ -1,5 +1,6 @@ package inha.how.Service; +import inha.how.Config.exception.BaseException; import inha.how.Domain.dto.Excercise.CateInfoMapping; import inha.how.Domain.dto.Excercise.ImgUrlMapping; import inha.how.Domain.dto.routine.*; @@ -21,6 +22,8 @@ import java.util.List; import java.util.Set; +import static inha.how.Config.BaseResponseStatus.MY_ROUTINE_NOT_FOUND; + @Slf4j @RequiredArgsConstructor @Service @@ -150,4 +153,9 @@ public void increaseHits(Long id){ routine.addHits(); } + @Transactional + public void CompleteRoutine(Long id){ + MyRoutine myRoutine= myRoutineReposiotry.findById(id).orElseThrow(()-> new BaseException(MY_ROUTINE_NOT_FOUND)); + myRoutine.increaseCnt(); + } }