From f29fe5e8773770055c202dbff00dd0f6fe3887ac Mon Sep 17 00:00:00 2001 From: 10Hyuna Date: Wed, 26 Feb 2025 11:18:21 +0900 Subject: [PATCH 1/8] =?UTF-8?q?Feat:=20=EB=82=A0=EC=A7=9C=EB=B3=84=20?= =?UTF-8?q?=EC=9D=BC=EA=B8=B0=20=EC=A1=B0=ED=9A=8C=20API=20Request=20DTO?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/bamboo/log/diary/dto/request/CheckDiaryRequest.java | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 src/main/java/com/bamboo/log/diary/dto/request/CheckDiaryRequest.java diff --git a/src/main/java/com/bamboo/log/diary/dto/request/CheckDiaryRequest.java b/src/main/java/com/bamboo/log/diary/dto/request/CheckDiaryRequest.java new file mode 100644 index 0000000..19b87dd --- /dev/null +++ b/src/main/java/com/bamboo/log/diary/dto/request/CheckDiaryRequest.java @@ -0,0 +1,6 @@ +package com.bamboo.log.diary.dto.request; + +import jakarta.validation.constraints.NotEmpty; + +public record CheckDiaryRequest(@NotEmpty(message = "Date shouldn't be empty") String date) { +} From 6ac3e54d89ad905eb371ae7ac779c5754d5251cc Mon Sep 17 00:00:00 2001 From: 10Hyuna Date: Wed, 26 Feb 2025 11:22:14 +0900 Subject: [PATCH 2/8] =?UTF-8?q?Feat:=20=EB=82=A0=EC=A7=9C=EB=B3=84=20?= =?UTF-8?q?=EC=9D=BC=EA=B8=B0=20=EC=A1=B0=ED=9A=8C=20API=20Response=20DTO?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../log/diary/dto/response/CheckDiaryResponse.java | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 src/main/java/com/bamboo/log/diary/dto/response/CheckDiaryResponse.java diff --git a/src/main/java/com/bamboo/log/diary/dto/response/CheckDiaryResponse.java b/src/main/java/com/bamboo/log/diary/dto/response/CheckDiaryResponse.java new file mode 100644 index 0000000..4cf3a55 --- /dev/null +++ b/src/main/java/com/bamboo/log/diary/dto/response/CheckDiaryResponse.java @@ -0,0 +1,9 @@ +package com.bamboo.log.diary.dto.response; + +import jakarta.validation.constraints.NotEmpty; + +public record CheckDiaryResponse(@NotEmpty(message = "Date shouldn't be empty") String date, + @NotEmpty(message = "Diary Description shouldn't be empty") String diaryDescription, + @NotEmpty(message = "Summary Image shouldn't be empty") byte[] summaryImage + ) { +} From b6696653fb93f4494600902e4cbb143b09de2ced Mon Sep 17 00:00:00 2001 From: 10Hyuna Date: Wed, 26 Feb 2025 11:25:47 +0900 Subject: [PATCH 3/8] =?UTF-8?q?Feat:=20=EB=82=A0=EC=A7=9C=EB=B3=84=20?= =?UTF-8?q?=EC=9D=BC=EA=B8=B0=20=EC=A1=B0=ED=9A=8C=20Controller=20?= =?UTF-8?q?=EA=B5=AC=EC=B6=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/bamboo/log/diary/api/DiaryController.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/bamboo/log/diary/api/DiaryController.java b/src/main/java/com/bamboo/log/diary/api/DiaryController.java index 0b4e1c5..efe0b04 100644 --- a/src/main/java/com/bamboo/log/diary/api/DiaryController.java +++ b/src/main/java/com/bamboo/log/diary/api/DiaryController.java @@ -21,13 +21,23 @@ public class DiaryController { private final DiaryService diaryService; - @Operation(summary = "랜덤 주제 조회") + @Operation(summary = "일기 생성") @PostMapping("/create") - public ResponseEntity lookupRandomTopics(@RequestBody CreateDiaryRequest createDiaryRequest) { + public ResponseEntity createDiary(@RequestBody CreateDiaryRequest createDiaryRequest) { try { return diaryService.createDiary(createDiaryRequest); } catch (Exception e) { return ResponseHandler.create500Error(new ResponseForm(), e); } } + + @Operation(summary = "날짜별 일기 조회") + @GetMapping("/diariy") + public ResponseEntity getDiaryByDate(@RequestParam String date) { + try { + + } catch (Exception e) { + return ResponseHandler.create500Error(new ResponseForm(), e); + } + } } From 67ea19d3661580e6d7887c7fa532e0eeeb427b2c Mon Sep 17 00:00:00 2001 From: 10Hyuna Date: Wed, 26 Feb 2025 11:32:38 +0900 Subject: [PATCH 4/8] =?UTF-8?q?Refactor:=20=EB=82=A0=EC=A7=9C=EB=B3=84=20?= =?UTF-8?q?=EC=9D=BC=EA=B8=B0=20=EC=A1=B0=ED=9A=8C=20DTO=20=ED=95=84?= =?UTF-8?q?=EB=93=9C=20=EC=A4=91=20Date=20=EC=9E=90=EB=A3=8C=ED=98=95=20Lo?= =?UTF-8?q?calDateTime=EC=9C=BC=EB=A1=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/bamboo/log/diary/api/DiaryController.java | 2 +- .../bamboo/log/diary/dto/response/CheckDiaryResponse.java | 4 +++- .../com/bamboo/log/diary/service/diary/DiaryService.java | 2 ++ .../com/bamboo/log/diary/service/diary/DiaryServiceImpl.java | 5 +++++ 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/bamboo/log/diary/api/DiaryController.java b/src/main/java/com/bamboo/log/diary/api/DiaryController.java index efe0b04..00e19e5 100644 --- a/src/main/java/com/bamboo/log/diary/api/DiaryController.java +++ b/src/main/java/com/bamboo/log/diary/api/DiaryController.java @@ -35,7 +35,7 @@ public ResponseEntity createDiary(@RequestBody CreateDiaryRequest createDiaryReq @GetMapping("/diariy") public ResponseEntity getDiaryByDate(@RequestParam String date) { try { - + return diaryService.getDiaryByDate(date); } catch (Exception e) { return ResponseHandler.create500Error(new ResponseForm(), e); } diff --git a/src/main/java/com/bamboo/log/diary/dto/response/CheckDiaryResponse.java b/src/main/java/com/bamboo/log/diary/dto/response/CheckDiaryResponse.java index 4cf3a55..99a9a9c 100644 --- a/src/main/java/com/bamboo/log/diary/dto/response/CheckDiaryResponse.java +++ b/src/main/java/com/bamboo/log/diary/dto/response/CheckDiaryResponse.java @@ -2,7 +2,9 @@ import jakarta.validation.constraints.NotEmpty; -public record CheckDiaryResponse(@NotEmpty(message = "Date shouldn't be empty") String date, +import java.time.LocalDateTime; + +public record CheckDiaryResponse(@NotEmpty(message = "Date shouldn't be empty") LocalDateTime date, @NotEmpty(message = "Diary Description shouldn't be empty") String diaryDescription, @NotEmpty(message = "Summary Image shouldn't be empty") byte[] summaryImage ) { diff --git a/src/main/java/com/bamboo/log/diary/service/diary/DiaryService.java b/src/main/java/com/bamboo/log/diary/service/diary/DiaryService.java index 50cb4ac..f513e75 100644 --- a/src/main/java/com/bamboo/log/diary/service/diary/DiaryService.java +++ b/src/main/java/com/bamboo/log/diary/service/diary/DiaryService.java @@ -7,4 +7,6 @@ public interface DiaryService { ResponseEntity createDiary(CreateDiaryRequest createDiaryRequest); + ResponseEntity getDiaryByDate(String date); + } diff --git a/src/main/java/com/bamboo/log/diary/service/diary/DiaryServiceImpl.java b/src/main/java/com/bamboo/log/diary/service/diary/DiaryServiceImpl.java index 7aa7b33..cf659be 100644 --- a/src/main/java/com/bamboo/log/diary/service/diary/DiaryServiceImpl.java +++ b/src/main/java/com/bamboo/log/diary/service/diary/DiaryServiceImpl.java @@ -52,6 +52,11 @@ public ResponseEntity createDiary(CreateDiaryRequest createDiaryRequest) { return ResponseHandler.create201Response(new ResponseForm(), new CreateDiaryResponse(localDateTime)); } + @Override + public ResponseEntity getDiaryByDate(String date) { + return null; + } + private Diary saveDiary(CreateDiaryRequest createDiaryRequest, LocalDateTime localDateTime) { UserEntity user = userContextUtil.getUserEntity(); From 4a24cfdd3a5b6a334a2c437c30cc98aca04da2b2 Mon Sep 17 00:00:00 2001 From: 10Hyuna Date: Wed, 26 Feb 2025 11:49:17 +0900 Subject: [PATCH 5/8] Settings: dotenv Config --- .env | 24 +++++++++++++++++++ .gitignore | 4 +++- build.gradle | 2 ++ .../bamboo/log/common/config/EnvConfig.java | 13 ++++++++++ .../bamboo/log/diary/api/DiaryController.java | 4 ++-- .../diary/dto/request/CheckDiaryRequest.java | 6 ----- .../dto/response/CheckDiaryResponse.java | 2 ++ .../log/diary/repository/DiaryRepository.java | 7 ++++++ .../log/diary/service/diary/DiaryService.java | 4 +++- .../diary/service/diary/DiaryServiceImpl.java | 9 +++++-- 10 files changed, 63 insertions(+), 12 deletions(-) create mode 100644 .env create mode 100644 src/main/java/com/bamboo/log/common/config/EnvConfig.java delete mode 100644 src/main/java/com/bamboo/log/diary/dto/request/CheckDiaryRequest.java diff --git a/.env b/.env new file mode 100644 index 0000000..74a0ff2 --- /dev/null +++ b/.env @@ -0,0 +1,24 @@ +MYSQL_HOST=localhost +MYSQL_PORT=3306 +MYSQL_NAME=forrest +MYSQL_USERNAME=root +MYSQL_PASSWORD=ensharp2005* + +API_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3Mzg4MzQxNDgsIm5iZiI6MTczODgzNDE0OCwia2V5X2lkIjoiZTdmNTUxN2MtYzNlZC00ZmVmLWFkNzYtNTUxZjA3ZDJmMjNiIn0.sMIASpWdac5l3GdIXshb7NnuB-PQlHMFyNurcpu4Cms; +FACE_URL=https://api-cloud-function.elice.io/d5ff1aef-c59f-433c-8e1c-f9b52ac4ab6a/predict +IMG_URL=https://api-cloud-function.elice.io/0133c2f7-9f3f-44b6-a3d6-c24ba8ef4510/generate + +JWT_SECRET=vmfhaltmskdlstkfkdgodyroqkfwkdbalroqkfwkdbalaaaaaaaaaaaaaaaabbbbb + +SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_CLIENT_AUTHENTICATION_METHOD=client_secret_post +SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_CLIENT_NAME=kakao +SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_CLIENT_ID=649c1e34aedc1a7db892333d900725f2 +SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_CLIENT_SECRET=FqJEAF5XKaO0n4Bv3KVXWCpUcHQWahY8 +SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_REDIRECT_URI=https://qbdffmpbayqfbgja.tunnel-pt.elice.io/login/oauth2/code/kakao +SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_AUTHORIZATION_GRANT_TYPE=authorization_code +SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_SCOPE=profile_nickname,account_email + +SECURITY_OAUTH2_PROVIDER_KAKAO_AUTHORIZATION_URI=https://kauth.kakao.com/oauth/authorize +SECURITY_OAUTH2_PROVIDER_KAKAO_TOKEN_URI=https://kauth.kakao.com/oauth/token +SECURITY_OAUTH2_PROVIDER_KAKAO_USER_INFO_URI=https://kapi.kakao.com/v2/user/me +SECURITY_OAUTH2_PROVIDER_KAKAO_USER_NAME_ATTRIBUTE=id \ No newline at end of file diff --git a/.gitignore b/.gitignore index e48b6be..4c75e42 100644 --- a/.gitignore +++ b/.gitignore @@ -34,4 +34,6 @@ out/ /.nb-gradle/ ### VS Code ### -.vscode/ \ No newline at end of file +.vscode/ + +.env \ No newline at end of file diff --git a/build.gradle b/build.gradle index 53c709f..c0649cd 100644 --- a/build.gradle +++ b/build.gradle @@ -46,6 +46,8 @@ dependencies { // okhttp implementation 'com.squareup.okhttp3:okhttp:4.12.0' + + implementation 'io.github.cdimascio:java-dotenv:5.2.2' } tasks.named('test') { diff --git a/src/main/java/com/bamboo/log/common/config/EnvConfig.java b/src/main/java/com/bamboo/log/common/config/EnvConfig.java new file mode 100644 index 0000000..e531e99 --- /dev/null +++ b/src/main/java/com/bamboo/log/common/config/EnvConfig.java @@ -0,0 +1,13 @@ +package com.bamboo.log.common.config; + +import io.github.cdimascio.dotenv.Dotenv; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class EnvConfig { + @Bean + public Dotenv dotenv() { + return Dotenv.configure().ignoreIfMissing().load(); + } +} diff --git a/src/main/java/com/bamboo/log/diary/api/DiaryController.java b/src/main/java/com/bamboo/log/diary/api/DiaryController.java index 00e19e5..bcd933e 100644 --- a/src/main/java/com/bamboo/log/diary/api/DiaryController.java +++ b/src/main/java/com/bamboo/log/diary/api/DiaryController.java @@ -11,7 +11,7 @@ import io.swagger.v3.oas.annotations.tags.Tag; -import java.util.List; +import java.time.LocalDateTime; @RestController @RequiredArgsConstructor @@ -33,7 +33,7 @@ public ResponseEntity createDiary(@RequestBody CreateDiaryRequest createDiaryReq @Operation(summary = "날짜별 일기 조회") @GetMapping("/diariy") - public ResponseEntity getDiaryByDate(@RequestParam String date) { + public ResponseEntity getDiaryByDate(@RequestParam LocalDateTime date) { try { return diaryService.getDiaryByDate(date); } catch (Exception e) { diff --git a/src/main/java/com/bamboo/log/diary/dto/request/CheckDiaryRequest.java b/src/main/java/com/bamboo/log/diary/dto/request/CheckDiaryRequest.java deleted file mode 100644 index 19b87dd..0000000 --- a/src/main/java/com/bamboo/log/diary/dto/request/CheckDiaryRequest.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.bamboo.log.diary.dto.request; - -import jakarta.validation.constraints.NotEmpty; - -public record CheckDiaryRequest(@NotEmpty(message = "Date shouldn't be empty") String date) { -} diff --git a/src/main/java/com/bamboo/log/diary/dto/response/CheckDiaryResponse.java b/src/main/java/com/bamboo/log/diary/dto/response/CheckDiaryResponse.java index 99a9a9c..b15ff89 100644 --- a/src/main/java/com/bamboo/log/diary/dto/response/CheckDiaryResponse.java +++ b/src/main/java/com/bamboo/log/diary/dto/response/CheckDiaryResponse.java @@ -1,9 +1,11 @@ package com.bamboo.log.diary.dto.response; import jakarta.validation.constraints.NotEmpty; +import lombok.Builder; import java.time.LocalDateTime; +@Builder public record CheckDiaryResponse(@NotEmpty(message = "Date shouldn't be empty") LocalDateTime date, @NotEmpty(message = "Diary Description shouldn't be empty") String diaryDescription, @NotEmpty(message = "Summary Image shouldn't be empty") byte[] summaryImage diff --git a/src/main/java/com/bamboo/log/diary/repository/DiaryRepository.java b/src/main/java/com/bamboo/log/diary/repository/DiaryRepository.java index 416db42..922fcfd 100644 --- a/src/main/java/com/bamboo/log/diary/repository/DiaryRepository.java +++ b/src/main/java/com/bamboo/log/diary/repository/DiaryRepository.java @@ -1,7 +1,14 @@ package com.bamboo.log.diary.repository; import com.bamboo.log.diary.domain.Diary; +import com.bamboo.log.domain.user.oauth.entity.UserEntity; import org.springframework.data.jpa.repository.JpaRepository; +import java.time.LocalDateTime; +import java.util.List; + public interface DiaryRepository extends JpaRepository { + + List findByUserAAndCreatedAtBetween(UserEntity user, LocalDateTime start, LocalDateTime end); + } diff --git a/src/main/java/com/bamboo/log/diary/service/diary/DiaryService.java b/src/main/java/com/bamboo/log/diary/service/diary/DiaryService.java index f513e75..57d08fc 100644 --- a/src/main/java/com/bamboo/log/diary/service/diary/DiaryService.java +++ b/src/main/java/com/bamboo/log/diary/service/diary/DiaryService.java @@ -3,10 +3,12 @@ import com.bamboo.log.diary.dto.request.CreateDiaryRequest; import org.springframework.http.ResponseEntity; +import java.time.LocalDateTime; + public interface DiaryService { ResponseEntity createDiary(CreateDiaryRequest createDiaryRequest); - ResponseEntity getDiaryByDate(String date); + ResponseEntity getDiaryByDate(LocalDateTime date); } diff --git a/src/main/java/com/bamboo/log/diary/service/diary/DiaryServiceImpl.java b/src/main/java/com/bamboo/log/diary/service/diary/DiaryServiceImpl.java index cf659be..eeea9cc 100644 --- a/src/main/java/com/bamboo/log/diary/service/diary/DiaryServiceImpl.java +++ b/src/main/java/com/bamboo/log/diary/service/diary/DiaryServiceImpl.java @@ -53,8 +53,13 @@ public ResponseEntity createDiary(CreateDiaryRequest createDiaryRequest) { } @Override - public ResponseEntity getDiaryByDate(String date) { - return null; + public ResponseEntity getDiaryByDate(LocalDateTime date) { + // 해당 유저가 입력받은 날짜에 일기를 작성했는지 확인 + + // 확인 후 얻어낸 일기 정보를 Response에 담아 반환 + + + return ResponseHandler.create200Response(new ResponseForm(), new CreateDiaryResponse[]); } private Diary saveDiary(CreateDiaryRequest createDiaryRequest, LocalDateTime localDateTime) { From c9f5f984e5b146b06accf5c1a2b9da0d9007626f Mon Sep 17 00:00:00 2001 From: 10Hyuna Date: Wed, 26 Feb 2025 11:58:42 +0900 Subject: [PATCH 6/8] =?UTF-8?q?Feat:=20=EC=9D=BC=EA=B8=B0=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=20API=20Service=20=EB=A1=9C=EC=A7=81=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env | 24 ---------------- .../repository/TodaySummaryRepository.java | 5 ++++ .../diary/service/diary/DiaryServiceImpl.java | 28 +++++++++++++++---- 3 files changed, 28 insertions(+), 29 deletions(-) delete mode 100644 .env diff --git a/.env b/.env deleted file mode 100644 index 74a0ff2..0000000 --- a/.env +++ /dev/null @@ -1,24 +0,0 @@ -MYSQL_HOST=localhost -MYSQL_PORT=3306 -MYSQL_NAME=forrest -MYSQL_USERNAME=root -MYSQL_PASSWORD=ensharp2005* - -API_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3Mzg4MzQxNDgsIm5iZiI6MTczODgzNDE0OCwia2V5X2lkIjoiZTdmNTUxN2MtYzNlZC00ZmVmLWFkNzYtNTUxZjA3ZDJmMjNiIn0.sMIASpWdac5l3GdIXshb7NnuB-PQlHMFyNurcpu4Cms; -FACE_URL=https://api-cloud-function.elice.io/d5ff1aef-c59f-433c-8e1c-f9b52ac4ab6a/predict -IMG_URL=https://api-cloud-function.elice.io/0133c2f7-9f3f-44b6-a3d6-c24ba8ef4510/generate - -JWT_SECRET=vmfhaltmskdlstkfkdgodyroqkfwkdbalroqkfwkdbalaaaaaaaaaaaaaaaabbbbb - -SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_CLIENT_AUTHENTICATION_METHOD=client_secret_post -SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_CLIENT_NAME=kakao -SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_CLIENT_ID=649c1e34aedc1a7db892333d900725f2 -SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_CLIENT_SECRET=FqJEAF5XKaO0n4Bv3KVXWCpUcHQWahY8 -SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_REDIRECT_URI=https://qbdffmpbayqfbgja.tunnel-pt.elice.io/login/oauth2/code/kakao -SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_AUTHORIZATION_GRANT_TYPE=authorization_code -SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_SCOPE=profile_nickname,account_email - -SECURITY_OAUTH2_PROVIDER_KAKAO_AUTHORIZATION_URI=https://kauth.kakao.com/oauth/authorize -SECURITY_OAUTH2_PROVIDER_KAKAO_TOKEN_URI=https://kauth.kakao.com/oauth/token -SECURITY_OAUTH2_PROVIDER_KAKAO_USER_INFO_URI=https://kapi.kakao.com/v2/user/me -SECURITY_OAUTH2_PROVIDER_KAKAO_USER_NAME_ATTRIBUTE=id \ No newline at end of file diff --git a/src/main/java/com/bamboo/log/diary/repository/TodaySummaryRepository.java b/src/main/java/com/bamboo/log/diary/repository/TodaySummaryRepository.java index 4093d83..2442924 100644 --- a/src/main/java/com/bamboo/log/diary/repository/TodaySummaryRepository.java +++ b/src/main/java/com/bamboo/log/diary/repository/TodaySummaryRepository.java @@ -3,5 +3,10 @@ import com.bamboo.log.diary.domain.TodaySummary; import org.springframework.data.jpa.repository.JpaRepository; +import java.util.Optional; + public interface TodaySummaryRepository extends JpaRepository { + + Optional findByDiaryId(Long diaryId); + } diff --git a/src/main/java/com/bamboo/log/diary/service/diary/DiaryServiceImpl.java b/src/main/java/com/bamboo/log/diary/service/diary/DiaryServiceImpl.java index eeea9cc..1a546a7 100644 --- a/src/main/java/com/bamboo/log/diary/service/diary/DiaryServiceImpl.java +++ b/src/main/java/com/bamboo/log/diary/service/diary/DiaryServiceImpl.java @@ -1,10 +1,14 @@ package com.bamboo.log.diary.service.diary; import com.bamboo.log.diary.domain.Diary; +import com.bamboo.log.diary.domain.TodaySummary; import com.bamboo.log.diary.dto.request.CreateDiaryRequest; +import com.bamboo.log.diary.dto.response.CheckDiaryResponse; import com.bamboo.log.diary.dto.response.CreateDiaryResponse; import com.bamboo.log.diary.repository.DiaryRepository; +import com.bamboo.log.diary.repository.TodaySummaryRepository; import com.bamboo.log.domain.user.oauth.dto.CustomOAuth2User; +import com.bamboo.log.domain.user.oauth.repository.UserRepository; import com.bamboo.log.domain.user.oauth.service.CustomOAuth2UserService; import org.springframework.security.core.GrantedAuthority; @@ -21,6 +25,8 @@ import java.io.IOException; import java.time.LocalDateTime; +import java.util.List; +import java.util.Optional; @Service @Transactional @@ -28,8 +34,10 @@ public class DiaryServiceImpl implements DiaryService { private final UserContextUtil userContextUtil; + private final UserRepository userRepository; private final DiaryRepository diaryRepository; private final TodaySummaryService todaySummaryService; + private final TodaySummaryRepository todaySummaryRepository; @Override public ResponseEntity createDiary(CreateDiaryRequest createDiaryRequest) { @@ -54,12 +62,22 @@ public ResponseEntity createDiary(CreateDiaryRequest createDiaryRequest) { @Override public ResponseEntity getDiaryByDate(LocalDateTime date) { - // 해당 유저가 입력받은 날짜에 일기를 작성했는지 확인 + UserEntity user = userRepository.findByUsername(userContextUtil.getUsername()); - // 확인 후 얻어낸 일기 정보를 Response에 담아 반환 - - - return ResponseHandler.create200Response(new ResponseForm(), new CreateDiaryResponse[]); + try { + List diaries = diaryRepository.findByUserAAndCreatedAtBetween(user, date, date); + Diary diaryByDate = diaries.get(0); + Optional summaryImage = todaySummaryRepository.findByDiaryId(diaryByDate.getId()); + + return ResponseHandler.create200Response(new ResponseForm(), + CheckDiaryResponse.builder() + .date(diaryByDate.getCreatedAt()) + .diaryDescription(diaryByDate.getContext()) + .summaryImage(summaryImage.get().getImageData())); + + } catch (Exception e) { + return ResponseHandler.create404Error(new ResponseForm(), new IllegalArgumentException("해당 날짜에 작성된 일기가 없습니다.")); + } } private Diary saveDiary(CreateDiaryRequest createDiaryRequest, LocalDateTime localDateTime) { From 5f1d37ab15ab65477fd068083c9a28fecc59d849 Mon Sep 17 00:00:00 2001 From: 10Hyuna Date: Wed, 26 Feb 2025 13:45:18 +0900 Subject: [PATCH 7/8] =?UTF-8?q?Refactor:=20=EB=82=A0=EC=A7=9C=EB=B3=84=20?= =?UTF-8?q?=EC=9D=BC=EA=B8=B0=20=EC=A1=B0=ED=9A=8C=20api=20=EC=97=94?= =?UTF-8?q?=EB=93=9C=ED=8F=AC=EC=9D=B8=ED=8A=B8=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/bamboo/log/diary/api/DiaryController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/bamboo/log/diary/api/DiaryController.java b/src/main/java/com/bamboo/log/diary/api/DiaryController.java index bcd933e..776728f 100644 --- a/src/main/java/com/bamboo/log/diary/api/DiaryController.java +++ b/src/main/java/com/bamboo/log/diary/api/DiaryController.java @@ -32,7 +32,7 @@ public ResponseEntity createDiary(@RequestBody CreateDiaryRequest createDiaryReq } @Operation(summary = "날짜별 일기 조회") - @GetMapping("/diariy") + @GetMapping("/date") public ResponseEntity getDiaryByDate(@RequestParam LocalDateTime date) { try { return diaryService.getDiaryByDate(date); From b8a3c630dd16e2d59f2fba4496d39fbefde48049 Mon Sep 17 00:00:00 2001 From: 10Hyuna Date: Wed, 26 Feb 2025 16:22:22 +0900 Subject: [PATCH 8/8] =?UTF-8?q?Refactor:=20API=20=EC=98=88=EC=99=B8=20?= =?UTF-8?q?=EC=B2=98=EB=A6=AC=20=EC=84=9C=EB=B9=84=EC=8A=A4=20=EB=A1=9C?= =?UTF-8?q?=EC=A7=81=20=EB=8B=A8=EC=97=90=EC=84=9C=20=EC=B2=98=EB=A6=AC=20?= =?UTF-8?q?=EB=B0=8F=20=EA=B0=84=EC=86=8C=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/bamboo/log/diary/api/DiaryController.java | 6 +----- .../bamboo/log/diary/service/diary/DiaryServiceImpl.java | 5 ++++- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/bamboo/log/diary/api/DiaryController.java b/src/main/java/com/bamboo/log/diary/api/DiaryController.java index 776728f..bdde0d2 100644 --- a/src/main/java/com/bamboo/log/diary/api/DiaryController.java +++ b/src/main/java/com/bamboo/log/diary/api/DiaryController.java @@ -34,10 +34,6 @@ public ResponseEntity createDiary(@RequestBody CreateDiaryRequest createDiaryReq @Operation(summary = "날짜별 일기 조회") @GetMapping("/date") public ResponseEntity getDiaryByDate(@RequestParam LocalDateTime date) { - try { - return diaryService.getDiaryByDate(date); - } catch (Exception e) { - return ResponseHandler.create500Error(new ResponseForm(), e); - } + return diaryService.getDiaryByDate(date); } } diff --git a/src/main/java/com/bamboo/log/diary/service/diary/DiaryServiceImpl.java b/src/main/java/com/bamboo/log/diary/service/diary/DiaryServiceImpl.java index 1a546a7..66a2fe6 100644 --- a/src/main/java/com/bamboo/log/diary/service/diary/DiaryServiceImpl.java +++ b/src/main/java/com/bamboo/log/diary/service/diary/DiaryServiceImpl.java @@ -75,9 +75,12 @@ public ResponseEntity getDiaryByDate(LocalDateTime date) { .diaryDescription(diaryByDate.getContext()) .summaryImage(summaryImage.get().getImageData())); - } catch (Exception e) { + } catch (RuntimeException e) { return ResponseHandler.create404Error(new ResponseForm(), new IllegalArgumentException("해당 날짜에 작성된 일기가 없습니다.")); } + catch (Exception e) { + return ResponseHandler.create500Error(new ResponseForm(), e); + } } private Diary saveDiary(CreateDiaryRequest createDiaryRequest, LocalDateTime localDateTime) {