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

Commit

Permalink
feat: ✨ 회원 탈퇴 구현(카카오 연결 끊기x) (#127)
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 수정
  • Loading branch information
LEEJaeHyeok97 authored Aug 12, 2024
1 parent 2097659 commit 5f45d15
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 10 deletions.
11 changes: 11 additions & 0 deletions src/main/java/com/aidiary/domain/auth/application/AuthService.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.aidiary.domain.user.domain.User;
import com.aidiary.domain.user.domain.repository.UserRepository;
import com.aidiary.global.config.security.token.UserPrincipal;
import com.aidiary.global.payload.Message;
import com.auth0.jwt.JWT;
import com.auth0.jwt.interfaces.DecodedJWT;
import jakarta.persistence.EntityNotFoundException;
Expand Down Expand Up @@ -72,4 +73,14 @@ public void updateFcmToken(Long id, String fcmToken) {
.orElseThrow(EntityNotFoundException::new);
user.updateFcmToken(fcmToken);
}

@Transactional
public Message unlinkAccount(Long userId) {
User user = userRepository.findById(userId)
.orElseThrow(EntityNotFoundException::new);
userRepository.delete(user);
return Message.builder()
.message("회원 탈퇴에 성공 했습니다.")
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import com.aidiary.global.config.security.token.CurrentUser;
import com.aidiary.global.config.security.token.UserPrincipal;
import com.aidiary.global.payload.ErrorResponse;
import com.aidiary.global.payload.Message;
import com.aidiary.global.payload.ResponseCustom;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
Expand Down Expand Up @@ -98,4 +99,17 @@ public ResponseCustom<AuthRes> testlogin(@RequestBody IdTokenReq idTokenReq) {

return ResponseCustom.OK(authRes);
}


@Operation(summary = "회원 탈퇴", description = "해당 유저의 가입을 탈퇴합니다.")
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "회원 탈퇴 성공", content = {@Content(mediaType = "application/json", array = @ArraySchema(schema = @Schema(implementation = Message.class)))}),
@ApiResponse(responseCode = "400", description = "회원 탈퇴 실패", content = {@Content(mediaType = "application/json", schema = @Schema(implementation = ErrorResponse.class))}),
})
@DeleteMapping()
public ResponseCustom<Message> unlinkSocialAccount(
@Parameter(description = "Accesstoken을 입력해주세요.", required = true) @CurrentUser UserPrincipal userPrincipal
) {
return ResponseCustom.OK(authService.unlinkAccount(userPrincipal.getId()));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ public ResponseCustom<String> analyzeEmotion(
@Parameter(description = "판정할 일기의 id를 입력해주세요.", required = true) @PathVariable Long diaryId
) {
String prompt = emotionService.loadDiaryContent(userPrincipal, diaryId);
String concatedPrompt = prompt.concat("\n위 일기 내용에 대한 지배적인 감정 한가지를 '우울', '불안', '화남', '행복', '지루함' 중 1개 골라서 판정해줘.");
String concatedPrompt = prompt.concat("\n위 일기 내용에 대한 지배적인 감정 한가지를 '우울', '불안', '화남', '행복', '지루함' 중 1개 골라서 판정해줘. 다시한번 말하지만 1가지 감정명으로 답변해야해");
ChatGPTReq request = new ChatGPTReq(model, concatedPrompt);
ChatGPTRes chatGPTRes = restTemplate.postForObject(apiURL, request, ChatGPTRes.class);
return ResponseCustom.OK(chatGPTRes.getChoices().get(0).getMessage().getContent());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,6 @@
@RequestMapping("/users")
public class UserController {

// private final UserService userService;
//
// @Operation(summary = "회원 탈퇴", description = "해당 유저를 회원 탈퇴합니다.")
// @ApiResponses(value = {
// @ApiResponse(responseCode = "200", description = "회원 탈퇴 성공", content = {@Content(mediaType = "application/json", array = @ArraySchema(schema = @Schema(implementation = Message.class)))}),
// @ApiResponse(responseCode = "400", description = "회원 탈퇴 실패", content = {@Content(mediaType = "application/json", schema = @Schema(implementation = ErrorResponse.class))}),
// })
// @DeleteMapping
// public ResponseCustom<Message>


}

0 comments on commit 5f45d15

Please sign in to comment.