Skip to content

Commit

Permalink
refactor: 레포지토리에 있던 addBadge를 도메인기능으로 옮김
Browse files Browse the repository at this point in the history
- 하나의 애그리거트에 대해서 도메인레포지토리를 가짐
- 도메인을 다시 저장할 때 1차 캐시에 의해 save&update됨
- 그래서 Member의 save기능을 사용
- addBadge와 관련된 기능(회원가입시분야뱃지등록, 뱃지달기) 수정
  • Loading branch information
westzeroright committed Jan 17, 2025
1 parent c62f2ce commit ed83349
Show file tree
Hide file tree
Showing 5 changed files with 9 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,5 @@ default Member getByMemberId(MemberId id){
default Member getBySocialId(String socialId){
return findBySocialId(socialId).orElseThrow(NoMemberException::new);
}
void addBadge(MemberId memberId, BadgeId badgeId);
void changeBadgeShowOrHide(MemberId memberId, BadgeId badgeId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -101,4 +101,11 @@ public void changeBadgeShowOrHide(BadgeId badgeId) {
public Optional<IsBadgeShown> getBadgeStatus(BadgeId badgeId) {
return Optional.ofNullable(this.badges.get(badgeId));
}

public void addBadge(BadgeId badgeId) {
if (!badges.containsKey(badgeId)) {
badges.put(badgeId, IsBadgeShown.Y);
this.register(new MemberBadgeAdded(this.getId(), this.badges));
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,6 @@ public class MemberJpaRepository implements MemberRepository {
private final BadgeConverter badgeConverter;
private final BadgeEntityRepository badgeRepo;

@Override
public void addBadge(MemberId memberId, BadgeId badgeId) {
badgeMemberRepo.save(new BadgeMemberEntity(memberId.id(),badgeId.id()));
}

@Override
public void save(Member member) {
MemberEntity memberEntity = memberConverter.from(member);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public class BadgeAttachHandler implements CommandHandler<BadgeAttach, Void> {
@Override
public Void handle(BadgeAttach req) {
Member member = repository.findByMemberId(new MemberId(req.memberId())).orElseThrow();
repository.addBadge(new MemberId(req.memberId()),new BadgeId(req.badgeId()));
member.addBadge(new BadgeId(req.badgeId()));
eventBus.publish(member.pullDomainEvents());
return null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public Void handleMemberCreatedEvent(MemberCreated event) {
Member member = event.getMember();
String position = member.getMainPosition().getPosition();
Badge badge = badgeRepo.findByName(position).orElseThrow(()-> new NotFoundBadgeException());
memberRepo.addBadge(member.getId(),badge.getId());
member.addBadge(badge.getId());
eventBus.publish(member.pullDomainEvents());
return null;
}
Expand Down

0 comments on commit ed83349

Please sign in to comment.