Skip to content
This repository has been archived by the owner on Oct 20, 2024. It is now read-only.

Commit

Permalink
feat: ✨ 일기 감정 수정 기능 구현 (#132)
Browse files Browse the repository at this point in the history
* Initial commit

* Feat/#1 oauth2login (#3)

* feat: User 엔터티 생성

* feat: jwt 버전 11->12, JWTUtil 생성

* feat: JWTFilter(JwtAuthenticationFilter) 등록

* feat: kakao 로그인 구현

* docs: swagger 태그(Authorization) 추가 (#5)

* feat: User 엔터티 생성

* feat: jwt 버전 11->12, JWTUtil 생성

* feat: JWTFilter(JwtAuthenticationFilter) 등록

* feat: kakao 로그인 구현

* docs: swagger 태그(Authorization) 추가

* feat: accesstoken 테스트를 위한 test login 생성 (#9)

* feat: User 엔티티에 상속 (#12)

* feat: BaseEntity 생성

* feat: User 엔티티에 상속

* feat: 일기 생성 기능 구현 (#14)

* feat: accesstoken 테스트를 위한 test login 생성

* feat: 일기 생성 기능 구현

* hotfix: ci 에러 수정 (#16)

* feat: accesstoken 테스트를 위한 test login 생성

* feat: 일기 생성 기능 구현

* hotfix: ci 에러 수정

* fix: OIDC 카카오 로그인 nullPointerException 해결

* feat: 닉네임 설정 기능 구현 (#21)

* feat: 일기 수정 기능 구현 (#25)

* feat: 일기에 감정 컬럼 추가

* feat: 일기 수정 기능 구현

* feat: 일기 삭제 기능 구현 (#27)

* feat: 일기에 감정 컬럼 추가

* feat: 일기 수정 기능 구현

* feat: 일기 삭제 기능 구현

* feat: 일기 감정 분석 기능 구현 (#31)

* feat: 감정 저장 기능 구현 (#33)

* feat: 일기 감정 분석 기능 구현

* feat: 감정 저장 기능 구현

* fix: 🐛 감정 저장 안되던 오류 수정 (#35)

* feat: 일기 감정 분석 기능 구현

* feat: 감정 저장 기능 구현

* fix: 🐛 감정 저장 안되던 오류 수정

* hotfix: 🚑 서버 꺼짐 현상 해결 (#37)

* feat: 일기 감정 분석 기능 구현

* feat: 감정 저장 기능 구현

* fix: 🐛 감정 저장 안되던 오류 수정

* hotfix: 🚑 서버 꺼짐 현상 해결

* feat: ✨ 홈 화면 조회 기능 구현 (#41)

* feat: ✨ 회원가입 완료 여부 필드 추가 (#44)

* feat: ✨ 일기 상세 조회 구현 (#47)

* feat: ✨ 기간 별 감정 통계 조회 기능 구현 (#50)

* feat: ✨ 일기 내용 검색 기능 구현 (#52)

* feat: ✨ 감정 별 일기 조회 (#54)

* feat: ✨ 월 별 일기 조회 기능 구현 (#59)

* ci: ⚡ workflow 수정 (#61)

* ci: ⚡ workflow 수정

* ci: ⚡ workflow 수정

* feat: ✨ user 엔터티 fcmToken 컬럼 추가, 로그인 시 토큰 최신화 구현 (#63)

* ci: ⚡ workflow 수정

* ci: ⚡ workflow 수정

* feat: ✨ fcm 토큰 알림 기능 구현

* feat: ✨ user 엔터티 fcmToken 컬럼 추가, 로그인 시 토큰 최신화 구현

* feat: ✨ 북마크 추가/삭제 기능 구현, 일기/홈화면 조회 쿼리문 수정 (#65)

* feat: ✨ 북마크 추가 기능 구현

* feat: ✨ 북마크 추가/삭제 기능 구현, 일기/홈화면 조회 쿼리문 수정

* feat: 🚀 fcmtoken 등록 api 분리 (#68)

* feat: ✨ 유저 정보 조회 기능 구현 (#71)

* Feat/#70 user info (#73)

* feat: ✨ 유저 정보 조회 기능 구현

* hotfix: 🚑 cd 에러 해결

* refactor: 🚀 gpt prompt 수정 (#76)

* feat: ✨ 일기 요약 스케줄러 구현 (#80)

* refactor: 🚀 엔터티 접근 지정자 수정 (#84)

* feat: ✨ 챗봇 임베딩 및 대화 기능 구현 완료 (#86)

* refactor: 🚀 불필요한 필드 삭제, 검색 내용 글자 수정(10->25) (#89)

* refactor: 🔨 일기 검색 시 일기 id 값을 포함하도록 수정

* fix: 🐛 날짜 입력 안되던 현상 해결 (#93)

* fix: 🐛 string 형태로 받아오는 식으로 수정 (#95)

* fix: 🐛 날짜 입력 안되던 현상 해결

* fix: 🐛 string 형태로 받아오는 식으로 수정

* refactor: 🔨 홈화면 조회에 다이어리 id 포함하도록 수정

* fix: 🐛 감정통계 정상 리턴 안되던 현상 수정

* feat: ✨ 감정 통계 리턴 dto 필드명 수정

* feat: ✨ 홈 화면 조회 시 내 일기만 조회하도록 수정

* feat: ✨ 감정 별 일기 조회 시 id값 함께 리턴하도록 수정

* feat: ✨ 채팅 내역 조회 기능 구현 (#106)

* docs: ✏️채팅 히스토리 조회 문서 수정 (#108)

* feat: ✨ 채팅 내역 조회 기능 구현

* docs: ✏️채팅 히스토리 조회 문서 수정

* feat: ✨ 채팅 히스토리 조회 시 생성 시각도 함께 반환

* feat: ✨ 챗봇과의 채팅 중 다시 응답 받는 기능 구현 (#111)

* feat: ✨ 알림 기능 모두에게 보내도록 수정 (#114)

* feat: ✨ 챗봇의 첫 인사 API 구현 (#116)

* feat: ✨ 알림 기능 모두에게 보내도록 수정

* feat: ✨ 챗봇의 첫 인사 API 구현

* hotfix: 🚑 서버 restart

* hotfix: 🚑 docker restart

* hotfix: 🚑 서버 재시작

* hotfix: 🐛 Greeting 엔터티 중복 에러 삭제

* fix: 서버 timezone 설정 변경 적용

* fix: 🐛 시간 출력 수정(utc->seoul)

* fix: 🐛 시간 출력 수정 test

* fix: 🐛 anxiety 걱정으로 쿼리되어 통계에 잡히지 않던 오류 수정

* feat: ai서버 주소 변경 적용

* feat: ✨ 회원 탈퇴 구현(카카오 연결 끊기x)

* fix: 🔨 감정 판단 prompt 수정

* feat: ✨ pdf 파일로 일기 가져오기 기능 구현

* fix: 🔨 회원 탈퇴 전이 범위 설정

* fix: 🔨 bookmark 존재 시 diary 삭제 안되는 현상 수정

* fix: 🔨 cascade 타입 수정

* feat: ✨ 일기 감정 수정 기능 구현
  • Loading branch information
LEEJaeHyeok97 authored Aug 13, 2024
1 parent 792d0fb commit 559cf8a
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.aidiary.domain.diary.domain.Diary;
import com.aidiary.domain.diary.domain.repository.DiaryRepository;
import com.aidiary.domain.emotion.dto.DiaryEditEmotionRes;
import com.aidiary.domain.emotion.dto.DiarysByEmotionRes;
import com.aidiary.domain.emotion.dto.EmotionStatRes;
import com.aidiary.domain.user.domain.User;
Expand All @@ -16,7 +17,6 @@
import org.springframework.transaction.annotation.Transactional;

import java.time.LocalDate;
import java.util.List;

@Service
@RequiredArgsConstructor
Expand Down Expand Up @@ -76,4 +76,28 @@ public Slice<DiarysByEmotionRes> findDiarys(UserPrincipal userPrincipal, String
Slice<DiarysByEmotionRes> allByEmotionAndUserId = diaryRepository.findAllByEmotionAndUserId(emotion, userPrincipal.getId(), pageable);
return allByEmotionAndUserId;
}

@Transactional
public DiaryEditEmotionRes editEmotion(Long userId, String emotion, Long diaryId) {
Diary diary = diaryRepository.findById(diaryId)
.orElseThrow(EntityNotFoundException::new);

if (!diary.getUser().getId().equals(userId)) {
return DiaryEditEmotionRes
.builder()
.diaryId(diaryId)
.isEdited(false)
.emotion(diary.getEmotion())
.build();
}

diary.updateEmotion(emotion);

return DiaryEditEmotionRes
.builder()
.diaryId(diaryId)
.isEdited(true)
.emotion(emotion)
.build();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.aidiary.domain.emotion.dto;

import lombok.Builder;

@Builder
public record DiaryEditEmotionRes(
Long diaryId,
boolean isEdited,
String emotion
) {
}
Original file line number Diff line number Diff line change
Expand Up @@ -108,4 +108,18 @@ public ResponseCustom<Slice<DiarysByEmotionRes>> findDiarysByEmotion(
) {
return ResponseCustom.OK(emotionService.findDiarys(userPrincipal, emotion, pageable));
}

@Operation(summary = "일기에 저장된 감정 수정", description = "일기에 저장된 감정을 수정합니다.")
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "감정 수정 성공", content = {@Content(mediaType = "application/json", schema = @Schema(implementation = DiarysByEmotionRes.class))}),
@ApiResponse(responseCode = "400", description = "감정 수정 실패", content = {@Content(mediaType = "application/json", schema = @Schema(implementation = ErrorResponse.class))}),
})
@PatchMapping("{diaryId}/{emotion}")
public ResponseCustom<?> editDiaryEmotion(
@Parameter(description = "Accesstoken을 입력해주세요.", required = true) @CurrentUser UserPrincipal userPrincipal,
@Parameter(description = "수정할 감정(행복, 우울, 화남, 불안, 지루함)을 입력해주세요.", required = true) @PathVariable String emotion,
@Parameter(description = "감정을 수정할 일기의 id를 입력해주세요.", required = true) @PathVariable Long diaryId
) {
return ResponseCustom.OK(emotionService.editEmotion(userPrincipal.getId(), emotion, diaryId));
}
}

0 comments on commit 559cf8a

Please sign in to comment.