-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* refactor: Where 어노테이션 추가로 User Entity 소프트 delete 관리하도록 변경 * feat: UserPreview 조회 쿼리 작성 * feat: User Internal Preview 조회 Service 작성 * feat: UserInternalQueryController 생성 및 Preview 조회 Controller 구현 * feat: User In id 쿼리 작성 * feat: User Intenal 일괄 조회 Service 작성 * feat: User Internal 일괄 조회 Controller 작성 * [Feat]: 유저 도메인 및 Adapter 이벤트 정의 및 SNS 토픽 발행 로직 구현 (#156) * feat: 유저 프로필, 신뢰도 업데이트 도메인 이벤트 정의 및 발행 * feat: UserAdapterEvent 모델 설계 * feat: UserEvent 데이터 모델 설계 및 쿼리 작성 * feat: UserAdapter 이벤트 핸들러 구현 * feat: UserOutboxPayload 핸들러 작성(Outbox DB 작업 및 SNS 토픽 생성 * rename: Event -> GroupEvent * feat: 발행 실패한 유저 이벤트 재발행 스케줄러 구현
- Loading branch information
Showing
58 changed files
with
786 additions
and
233 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4 changes: 4 additions & 0 deletions
4
src/main/java/com/gloddy/server/outbox/adapter/IGroupAdapterEvent.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
package com.gloddy.server.outbox.adapter; | ||
|
||
public interface IGroupAdapterEvent extends AdapterEvent { | ||
} |
4 changes: 4 additions & 0 deletions
4
src/main/java/com/gloddy/server/outbox/adapter/IUserAdapterEvent.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
package com.gloddy.server.outbox.adapter; | ||
|
||
public interface IUserAdapterEvent extends AdapterEvent { | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
22 changes: 22 additions & 0 deletions
22
src/main/java/com/gloddy/server/outbox/adapter/user/event/UserAdapterEvent.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
package com.gloddy.server.outbox.adapter.user.event; | ||
|
||
import com.gloddy.server.outbox.adapter.AdapterEvent; | ||
import com.gloddy.server.outbox.adapter.IUserAdapterEvent; | ||
import lombok.AllArgsConstructor; | ||
import lombok.Getter; | ||
|
||
import java.time.LocalDateTime; | ||
|
||
@AllArgsConstructor | ||
@Getter | ||
public class UserAdapterEvent implements IUserAdapterEvent { | ||
|
||
private Long userId; | ||
private UserEventType eventType; | ||
private LocalDateTime eventDateTime; | ||
|
||
@Override | ||
public String getEventType() { | ||
return eventType.name(); | ||
} | ||
} |
9 changes: 9 additions & 0 deletions
9
src/main/java/com/gloddy/server/outbox/adapter/user/event/UserEventType.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
package com.gloddy.server.outbox.adapter.user.event; | ||
|
||
import com.gloddy.server.outbox.adapter.AdapterEvent; | ||
|
||
public enum UserEventType { | ||
JOIN, | ||
UPDATE_PROFILE, | ||
UPGRADE_RELIABILITY | ||
} |
37 changes: 37 additions & 0 deletions
37
src/main/java/com/gloddy/server/outbox/adapter/user/handler/UserAdapterHandler.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
package com.gloddy.server.outbox.adapter.user.handler; | ||
|
||
import com.gloddy.server.outbox.adapter.user.event.UserAdapterEvent; | ||
import com.gloddy.server.outbox.adapter.user.mapper.UserEventMapper; | ||
import com.gloddy.server.outbox.application.OutboxEventSaveService; | ||
import com.gloddy.server.user.event.UserCreateEvent; | ||
import com.gloddy.server.user.event.UserProfileUpdateEvent; | ||
import com.gloddy.server.user.event.UserReliabilityUpgradeEvent; | ||
import lombok.RequiredArgsConstructor; | ||
import org.springframework.stereotype.Component; | ||
import org.springframework.transaction.event.TransactionPhase; | ||
import org.springframework.transaction.event.TransactionalEventListener; | ||
|
||
@Component | ||
@RequiredArgsConstructor | ||
public class UserAdapterHandler { | ||
|
||
private final OutboxEventSaveService outboxEventSaveService; | ||
|
||
@TransactionalEventListener(phase = TransactionPhase.BEFORE_COMMIT) | ||
public void handle(UserCreateEvent userCreateEvent) { | ||
UserAdapterEvent adapterEvent = UserEventMapper.toAdapterEvent(userCreateEvent); | ||
outboxEventSaveService.save(adapterEvent); | ||
} | ||
|
||
@TransactionalEventListener(phase = TransactionPhase.BEFORE_COMMIT) | ||
public void handle(UserProfileUpdateEvent userProfileUpdateEvent) { | ||
UserAdapterEvent adapterEvent = UserEventMapper.toAdapterEvent(userProfileUpdateEvent); | ||
outboxEventSaveService.save(adapterEvent); | ||
} | ||
|
||
@TransactionalEventListener(phase = TransactionPhase.BEFORE_COMMIT) | ||
public void handle(UserReliabilityUpgradeEvent userReliabilityUpgradeEvent) { | ||
UserAdapterEvent adapterEvent = UserEventMapper.toAdapterEvent(userReliabilityUpgradeEvent); | ||
outboxEventSaveService.save(adapterEvent); | ||
} | ||
} |
36 changes: 36 additions & 0 deletions
36
src/main/java/com/gloddy/server/outbox/adapter/user/mapper/UserEventMapper.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
package com.gloddy.server.outbox.adapter.user.mapper; | ||
|
||
import com.gloddy.server.outbox.adapter.user.event.UserAdapterEvent; | ||
import com.gloddy.server.outbox.adapter.user.event.UserEventType; | ||
import com.gloddy.server.user.event.UserCreateEvent; | ||
import com.gloddy.server.user.event.UserProfileUpdateEvent; | ||
import com.gloddy.server.user.event.UserReliabilityUpgradeEvent; | ||
|
||
import java.time.LocalDateTime; | ||
|
||
public class UserEventMapper { | ||
|
||
public static UserAdapterEvent toAdapterEvent(UserCreateEvent userCreateEvent) { | ||
return new UserAdapterEvent( | ||
userCreateEvent.getUser().getId(), | ||
UserEventType.JOIN, | ||
LocalDateTime.now() | ||
); | ||
} | ||
|
||
public static UserAdapterEvent toAdapterEvent(UserProfileUpdateEvent userProfileUpdateEvent) { | ||
return new UserAdapterEvent( | ||
userProfileUpdateEvent.getUserId(), | ||
UserEventType.UPDATE_PROFILE, | ||
LocalDateTime.now() | ||
); | ||
} | ||
|
||
public static UserAdapterEvent toAdapterEvent(UserReliabilityUpgradeEvent userReliabilityUpgradeEvent) { | ||
return new UserAdapterEvent( | ||
userReliabilityUpgradeEvent.getUserId(), | ||
UserEventType.UPGRADE_RELIABILITY, | ||
LocalDateTime.now() | ||
); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.