Skip to content

Commit 73d1d42

Browse files
committed
Feat(#71): 회원탈퇴 시 토큰 삭제 로직의 비동기 처리 추가
1 parent 9ccd4d3 commit 73d1d42

File tree

4 files changed

+43
-0
lines changed

4 files changed

+43
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.wypl.wyplcore.config;
2+
3+
import org.springframework.context.annotation.Configuration;
4+
import org.springframework.scheduling.annotation.EnableAsync;
5+
6+
@Configuration
7+
@EnableAsync
8+
public class AsyncConfig {
9+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package com.wypl.wyplcore.member.data;
2+
3+
public record MemberEventDto(
4+
String accessToken
5+
) {
6+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.wypl.wyplcore.member.handler;
2+
3+
import org.springframework.scheduling.annotation.Async;
4+
import org.springframework.stereotype.Component;
5+
import org.springframework.transaction.event.TransactionPhase;
6+
import org.springframework.transaction.event.TransactionalEventListener;
7+
8+
import com.wypl.wyplcore.member.data.MemberEventDto;
9+
import com.wypl.wyplcore.token.service.TokenService;
10+
11+
import lombok.RequiredArgsConstructor;
12+
13+
@RequiredArgsConstructor
14+
@Component
15+
public class MemberEventHandler {
16+
private final TokenService tokenService;
17+
18+
@Async
19+
@TransactionalEventListener(phase = TransactionPhase.AFTER_COMPLETION)
20+
public void deleteToken(MemberEventDto memberEventDto) {
21+
tokenService.deleteToken(memberEventDto.accessToken());
22+
}
23+
}

application/wypl-core/src/main/java/com/wypl/wyplcore/member/service/MemberService.java

+5
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import java.time.LocalDate;
44

5+
import org.springframework.context.ApplicationEventPublisher;
56
import org.springframework.stereotype.Service;
67
import org.springframework.transaction.annotation.Transactional;
78

@@ -16,6 +17,7 @@
1617
import com.wypl.jpamemberdomain.member.repository.MemberRepository;
1718
import com.wypl.jpamemberdomain.member.repository.SocialMemberRepository;
1819
import com.wypl.jpamemberdomain.member.utils.SocialMemberRepositoryUtils;
20+
import com.wypl.wyplcore.member.data.MemberEventDto;
1921

2022
import lombok.RequiredArgsConstructor;
2123

@@ -26,10 +28,13 @@ public class MemberService {
2628
private final GoogleOAuthClient googleOAuthClient;
2729
private final MemberRepository memberRepository;
2830
private final SocialMemberRepository socialMemberRepository;
31+
private final ApplicationEventPublisher applicationEventPublisher;
2932

3033
@Transactional
3134
public void deleteMember(AuthMember authMember) {
35+
// Todo : 회원 탈퇴 로직 변경 필요
3236
memberRepository.deleteById(authMember.id());
37+
applicationEventPublisher.publishEvent(new MemberEventDto(authMember.accessToken()));
3338
}
3439

3540
@Transactional

0 commit comments

Comments
 (0)