From 61d51440d043793c26c9ef1cfde0267694f38071 Mon Sep 17 00:00:00 2001 From: mmihye Date: Wed, 10 Jan 2024 15:19:04 +0900 Subject: [PATCH 1/4] =?UTF-8?q?[#41]=20fix=20:=20toastListDto=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/response/main/MainPageResponseDto.java | 3 ++- .../toaster/controller/response/toast/MainToastDto.java | 9 +++++++++ .../com/app/toaster/infrastructure/ToastRepository.java | 1 + .../java/com/app/toaster/service/main/MainService.java | 3 +++ 4 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 linkmind/src/main/java/com/app/toaster/controller/response/toast/MainToastDto.java diff --git a/linkmind/src/main/java/com/app/toaster/controller/response/main/MainPageResponseDto.java b/linkmind/src/main/java/com/app/toaster/controller/response/main/MainPageResponseDto.java index 5fe7eed..99162c9 100644 --- a/linkmind/src/main/java/com/app/toaster/controller/response/main/MainPageResponseDto.java +++ b/linkmind/src/main/java/com/app/toaster/controller/response/main/MainPageResponseDto.java @@ -1,6 +1,7 @@ package com.app.toaster.controller.response.main; import com.app.toaster.controller.response.category.CategoriesReponse; +import com.app.toaster.controller.response.toast.MainToastDto; import com.app.toaster.domain.RecommendSite; import lombok.Builder; @@ -8,5 +9,5 @@ import java.util.List; @Builder -public record MainPageResponseDto(String nickname, int readToastNum, int allToastNum, List mainCategoryListDto, List recommendedSiteListDto) { +public record MainPageResponseDto(String nickname, int readToastNum, int allToastNum, List mainCategoryListDto, List toastListDto, List recommendedSiteListDto) { } diff --git a/linkmind/src/main/java/com/app/toaster/controller/response/toast/MainToastDto.java b/linkmind/src/main/java/com/app/toaster/controller/response/toast/MainToastDto.java new file mode 100644 index 0000000..bfdd015 --- /dev/null +++ b/linkmind/src/main/java/com/app/toaster/controller/response/toast/MainToastDto.java @@ -0,0 +1,9 @@ +package com.app.toaster.controller.response.toast; + +import com.app.toaster.domain.Toast; + +public record MainToastDto(Long toastId, String toastTitle, String toastImg, String toastLink) { + public static MainToastDto of(Toast toast){ + return new MainToastDto(toast.getId(), toast.getTitle(), toast.getThumbnailUrl(), toast.getLinkUrl()); + } +} diff --git a/linkmind/src/main/java/com/app/toaster/infrastructure/ToastRepository.java b/linkmind/src/main/java/com/app/toaster/infrastructure/ToastRepository.java index 68d9d52..f82bb37 100644 --- a/linkmind/src/main/java/com/app/toaster/infrastructure/ToastRepository.java +++ b/linkmind/src/main/java/com/app/toaster/infrastructure/ToastRepository.java @@ -39,4 +39,5 @@ public interface ToastRepository extends JpaRepository { Long countALLByUserAndIsReadTrue(User user); Long countAllByUserAndIsReadFalse(User user); + } diff --git a/linkmind/src/main/java/com/app/toaster/service/main/MainService.java b/linkmind/src/main/java/com/app/toaster/service/main/MainService.java index 2cb18b5..b7c65d2 100644 --- a/linkmind/src/main/java/com/app/toaster/service/main/MainService.java +++ b/linkmind/src/main/java/com/app/toaster/service/main/MainService.java @@ -2,6 +2,7 @@ import com.app.toaster.controller.response.category.CategoriesReponse; import com.app.toaster.controller.response.main.MainPageResponseDto; +import com.app.toaster.controller.response.toast.MainToastDto; import com.app.toaster.domain.Category; import com.app.toaster.domain.User; import com.app.toaster.exception.Error; @@ -37,6 +38,8 @@ public MainPageResponseDto getMainPage(Long userId) { MainPageResponseDto mainPageResponseDto = MainPageResponseDto.builder().nickname(user.getNickname()) .allToastNum(allToastNum) .readToastNum(readToastNum) + .toastListDto(toastRepository.findAll().subList(0,Math.min(3,toastRepository.findAll().size())) + .stream().map(MainToastDto::of).toList()) .recommendedSiteListDto(recommedSiteRepository.findAll().subList(0, Math.min(9, recommedSiteRepository.findAll().size()))) .mainCategoryListDto(getCategory(user).stream() .map(category -> CategoriesReponse.builder() From c710c440fbbea0bdfd814311d625db33ab7dfc29 Mon Sep 17 00:00:00 2001 From: mmihye Date: Wed, 10 Jan 2024 16:09:35 +0900 Subject: [PATCH 2/4] =?UTF-8?q?[#41]=20fix=20:=20categoryId=20=EB=B3=80?= =?UTF-8?q?=EC=88=98=EB=AA=85=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../toaster/controller/response/category/CategoriesReponse.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linkmind/src/main/java/com/app/toaster/controller/response/category/CategoriesReponse.java b/linkmind/src/main/java/com/app/toaster/controller/response/category/CategoriesReponse.java index fb96412..41238de 100644 --- a/linkmind/src/main/java/com/app/toaster/controller/response/category/CategoriesReponse.java +++ b/linkmind/src/main/java/com/app/toaster/controller/response/category/CategoriesReponse.java @@ -3,6 +3,6 @@ import lombok.Builder; @Builder -public record CategoriesReponse(Long CategoryId, String categoryTitle, int toastNum) { +public record CategoriesReponse(Long categoryId, String categoryTitle, int toastNum) { } From 4d81d42375ec9129c52aeae8bb45e205588cebac Mon Sep 17 00:00:00 2001 From: mmihye Date: Wed, 10 Jan 2024 16:12:59 +0900 Subject: [PATCH 3/4] =?UTF-8?q?[#41]=20fix=20:=20categoryId=20=EB=B3=80?= =?UTF-8?q?=EC=88=98=EB=AA=85=20=EB=B3=80=EA=B2=BD=EC=97=90=20=EB=94=B0?= =?UTF-8?q?=EB=A5=B8=20=ED=95=A8=EC=88=98=EB=AA=85=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/app/toaster/service/category/CategoryService.java | 2 +- .../src/main/java/com/app/toaster/service/main/MainService.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/linkmind/src/main/java/com/app/toaster/service/category/CategoryService.java b/linkmind/src/main/java/com/app/toaster/service/category/CategoryService.java index d8c54fe..ab4990f 100644 --- a/linkmind/src/main/java/com/app/toaster/service/category/CategoryService.java +++ b/linkmind/src/main/java/com/app/toaster/service/category/CategoryService.java @@ -78,7 +78,7 @@ public List getCategories(Long userId){ return categoryRepository.findAllByUserOrderByPriority(presentUser) .stream() .map(category -> CategoriesReponse.builder() - .CategoryId(category.getCategoryId()) + .categoryId(category.getCategoryId()) .categoryTitle(category.getTitle()) .toastNum(toastRepository.getAllByCategory(category).size()).build() ).collect(Collectors.toList()); diff --git a/linkmind/src/main/java/com/app/toaster/service/main/MainService.java b/linkmind/src/main/java/com/app/toaster/service/main/MainService.java index b7c65d2..61d6ddf 100644 --- a/linkmind/src/main/java/com/app/toaster/service/main/MainService.java +++ b/linkmind/src/main/java/com/app/toaster/service/main/MainService.java @@ -43,7 +43,7 @@ public MainPageResponseDto getMainPage(Long userId) { .recommendedSiteListDto(recommedSiteRepository.findAll().subList(0, Math.min(9, recommedSiteRepository.findAll().size()))) .mainCategoryListDto(getCategory(user).stream() .map(category -> CategoriesReponse.builder() - .CategoryId(category.getCategoryId()) + .categoryId(category.getCategoryId()) .categoryTitle(category.getTitle()) .toastNum(toastRepository.getAllByCategory(category).size()).build() ).collect(Collectors.toList())).build(); From 55808e4a5de8b9298564e4b0a8f4afe2508c8c23 Mon Sep 17 00:00:00 2001 From: mmihye Date: Thu, 11 Jan 2024 03:16:51 +0900 Subject: [PATCH 4/4] =?UTF-8?q?[#45]=20feat=20:=20=ED=83=80=EC=9D=B4?= =?UTF-8?q?=EB=A8=B8=20=EC=95=8C=EB=9E=8C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- linkmind/build.gradle | 14 ++------------ .../app/toaster/controller/TimerController.java | 9 +++++++++ .../main/java/com/app/toaster/domain/Reminder.java | 4 ++++ .../java/com/app/toaster/exception/Success.java | 1 + .../app/toaster/service/timer/TimerService.java | 14 ++++++++++++++ 5 files changed, 30 insertions(+), 12 deletions(-) diff --git a/linkmind/build.gradle b/linkmind/build.gradle index 69e59cb..21e7727 100644 --- a/linkmind/build.gradle +++ b/linkmind/build.gradle @@ -8,7 +8,6 @@ plugins { id 'java' id 'org.springframework.boot' version '3.2.0' id 'io.spring.dependency-management' version '1.1.4' - id "io.sentry.jvm.gradle" version "4.1.1" } group = 'com.app' @@ -71,19 +70,10 @@ dependencies { implementation 'com.slack.api:slack-app-backend:1.28.0' implementation 'com.slack.api:slack-api-model:1.28.0' + implementation 'io.sentry:sentry-spring-boot-starter:5.7.0' + } tasks.named('test') { useJUnitPlatform() } - -sentry { - // Generates a JVM (Java, Kotlin, etc.) source bundle and uploads your source code to Sentry. - // This enables source context, allowing you to see your source - // code as part of your stack traces in Sentry. - includeSourceContext = true - - org = "linkmind" - projectName = "java-spring-boot" - authToken = System.getenv("SENTRY_TOKEN") -} diff --git a/linkmind/src/main/java/com/app/toaster/controller/TimerController.java b/linkmind/src/main/java/com/app/toaster/controller/TimerController.java index 1b2c633..89f50f8 100644 --- a/linkmind/src/main/java/com/app/toaster/controller/TimerController.java +++ b/linkmind/src/main/java/com/app/toaster/controller/TimerController.java @@ -82,4 +82,13 @@ public ApiResponse getTimerPage( @UserId Long userId) throws IOException { return ApiResponse.success(Success.GET_TIMER_PAGE_SUCCESS, timerService.getTimerPage(userId)); } + + @PatchMapping("/alarm/{timerId}") + @ResponseStatus(HttpStatus.OK) + public ApiResponse changeAlarm( + @UserId Long userId, + @PathVariable Long timerId) { + timerService.changeAlarm(userId, timerId); + return ApiResponse.success(Success.CHANGE_TIMER_ALARM_SUCCESS); + } } diff --git a/linkmind/src/main/java/com/app/toaster/domain/Reminder.java b/linkmind/src/main/java/com/app/toaster/domain/Reminder.java index 2e08499..6dc4983 100644 --- a/linkmind/src/main/java/com/app/toaster/domain/Reminder.java +++ b/linkmind/src/main/java/com/app/toaster/domain/Reminder.java @@ -57,4 +57,8 @@ public void updateRemindDates(ArrayList remindDates){ public void updateComment(String comment){ this.comment = comment; } + + public void changeAlarm(){ + this.isAlarm = !isAlarm; + } } diff --git a/linkmind/src/main/java/com/app/toaster/exception/Success.java b/linkmind/src/main/java/com/app/toaster/exception/Success.java index 60276b8..eeabefe 100644 --- a/linkmind/src/main/java/com/app/toaster/exception/Success.java +++ b/linkmind/src/main/java/com/app/toaster/exception/Success.java @@ -43,6 +43,7 @@ public enum Success { UPDATE_CATEGORY_TITLE_SUCCESS(HttpStatus.OK, "카테고리 수정 완료"), UPDATE_TIMER_DATETIME_SUCCESS(HttpStatus.OK, "타이머 시간/날짜 수정 완료"), UPDATE_TIMER_COMMENT_SUCCESS(HttpStatus.OK, "타이머 코멘트 수정 완료"), + CHANGE_TIMER_ALARM_SUCCESS(HttpStatus.OK, "타이머 알람여부 수정 완료"), /** diff --git a/linkmind/src/main/java/com/app/toaster/service/timer/TimerService.java b/linkmind/src/main/java/com/app/toaster/service/timer/TimerService.java index 83cea3d..62774a1 100644 --- a/linkmind/src/main/java/com/app/toaster/service/timer/TimerService.java +++ b/linkmind/src/main/java/com/app/toaster/service/timer/TimerService.java @@ -122,6 +122,20 @@ public void deleteTimer(Long userId, Long timerId){ timerRepository.delete(reminder); } + @Transactional + public void changeAlarm(Long userId, Long timerId){ + User presentUser = findUser(userId); + + Reminder reminder = timerRepository.findById(timerId) + .orElseThrow(() -> new NotFoundException(Error.NOT_FOUND_TIMER, Error.NOT_FOUND_TIMER.getMessage())); + + if (!presentUser.equals(reminder.getUser())){ + throw new UnauthorizedException(Error.INVALID_USER_ACCESS, Error.INVALID_USER_ACCESS.getMessage()); + } + + reminder.changeAlarm(); + } + public GetTimerPageResponseDto getTimerPage(Long userId) throws IOException { User presentUser = findUser(userId); ArrayList reminders = timerRepository.findAllByUser(presentUser);