Skip to content

Commit 4ffa5c3

Browse files
authored
Merge pull request #131 from Team-Shaka/refactor/130
⚡️ Improve: 초대장 로직 개선
2 parents 3d64046 + dcb4cbb commit 4ffa5c3

File tree

5 files changed

+27
-16
lines changed

5 files changed

+27
-16
lines changed

src/main/java/treehouse/server/api/invitation/business/InvitationService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ public InvitationResponseDTO.invitationAccept decisionInvitation(User user, Invi
118118
if (request.isAcceptDecision()==true) {
119119
treehouseId = invitation.getTreeHouse().getId(); // treehouse 관련 로직 개발 후, invitation.getTreeHouse.getId() 등으로 바꾸기
120120
// 초대장 수락
121-
121+
invitationCommandAdapter.acceptInvitation(invitation);
122122
}
123123
return InvitationMapper.toInvitationResult(treehouseId);
124124
}

src/main/java/treehouse/server/api/invitation/implement/InvitationCommandAdapter.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import treehouse.server.api.invitation.persistence.InvitationRepository;
77
import treehouse.server.global.annotations.Adapter;
88
import treehouse.server.global.entity.Invitation.Invitation;
9+
import treehouse.server.global.entity.Invitation.InvitationStatus;
910
import treehouse.server.global.entity.User.User;
1011
import treehouse.server.global.entity.User.UserRole;
1112
import treehouse.server.global.entity.redis.RefreshToken;
@@ -27,4 +28,12 @@ public Invitation saveInvitation(Invitation invitation){
2728
return invitationRepository.save(invitation);
2829
}
2930

31+
public void deleteInvitation(Invitation invitation){
32+
invitationRepository.delete(invitation);
33+
}
34+
35+
public void acceptInvitation(Invitation invitation) {
36+
invitation.setStatus(InvitationStatus.ACCEPTED);
37+
invitationRepository.save(invitation);
38+
}
3039
}
Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,16 @@
11
package treehouse.server.api.invitation.implement;
22

3-
import io.swagger.models.auth.In;
43
import lombok.RequiredArgsConstructor;
5-
import org.springframework.transaction.annotation.Transactional;
64
import treehouse.server.api.invitation.persistence.InvitationRepository;
7-
import treehouse.server.api.invitation.presentation.dto.InvitationRequestDTO;
85
import treehouse.server.global.annotations.Adapter;
96
import treehouse.server.global.entity.Invitation.Invitation;
7+
import treehouse.server.global.entity.Invitation.InvitationStatus;
108
import treehouse.server.global.entity.User.User;
119
import treehouse.server.global.entity.treeHouse.TreeHouse;
1210
import treehouse.server.global.exception.GlobalErrorCode;
1311
import treehouse.server.global.exception.ThrowClass.InvitationException;
14-
import treehouse.server.global.exception.ThrowClass.UserException;
1512

1613
import java.util.List;
17-
import java.util.Optional;
1814

1915
@Adapter
2016
@RequiredArgsConstructor
@@ -23,7 +19,8 @@ public class InvitationQueryAdapter {
2319
private final InvitationRepository invitationRepository;
2420

2521
public List<Invitation> findAllByPhone(String phone) {
26-
return invitationRepository.findAllByPhone(phone);
22+
return invitationRepository.findAllByPhone(phone)
23+
.stream().filter(invitation -> invitation.getStatus().equals(InvitationStatus.PENDING)).toList();
2724
}
2825

2926
public Boolean existByPhoneNumber(String phoneNumber) {
@@ -39,12 +36,13 @@ public Boolean existByPhoneAndTreehouse(String phoneNumber, TreeHouse treehouse)
3936
return invitationRepository.existsByPhoneAndTreeHouse(phoneNumber, treehouse);
4037
}
4138

42-
public Invitation findByReceiverAndTreeHouse(User user, TreeHouse treeHouse) {
43-
return invitationRepository.findByReceiverAndTreeHouse(user, treeHouse)
44-
.orElseThrow(() -> new InvitationException(GlobalErrorCode.INVITATION_NOT_FOUND));
45-
}
46-
4739
public Invitation findByPhoneAndTreeHouse(String phone, TreeHouse treeHouse) {
4840
return invitationRepository.findByPhoneAndTreeHouse(phone, treeHouse);
4941
}
42+
43+
public Invitation findAcceptedInvitation(User user, TreeHouse treeHouse) {
44+
return invitationRepository.findByReceiverAndTreeHouse(user, treeHouse)
45+
.filter(invitation -> invitation.getStatus().equals(InvitationStatus.ACCEPTED))
46+
.orElseThrow(() -> new InvitationException(GlobalErrorCode.INVITATION_NOT_FOUND));
47+
}
5048
}

src/main/java/treehouse/server/api/member/business/MemberService.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@
66
import org.springframework.transaction.annotation.Transactional;
77
import treehouse.server.api.branch.business.BranchService;
88
import treehouse.server.api.branch.implementation.BranchQueryAdapter;
9+
import treehouse.server.api.invitation.implement.InvitationCommandAdapter;
910
import treehouse.server.api.invitation.implement.InvitationQueryAdapter;
1011
import treehouse.server.api.member.implementation.MemberCommandAdapter;
1112
import treehouse.server.api.member.implementation.MemberQueryAdapter;
1213
import treehouse.server.api.member.presentation.dto.MemberRequestDTO;
1314
import treehouse.server.api.member.presentation.dto.MemberResponseDTO;
1415
import treehouse.server.api.treehouse.implementation.TreehouseQueryAdapter;
1516
import treehouse.server.global.entity.Invitation.Invitation;
17+
import treehouse.server.global.entity.Invitation.InvitationStatus;
1618
import treehouse.server.global.entity.User.User;
1719
import treehouse.server.global.entity.branch.Branch;
1820
import treehouse.server.global.entity.member.Member;
@@ -30,6 +32,8 @@ public class MemberService {
3032
private final MemberCommandAdapter memberCommandAdapter;
3133
private final TreehouseQueryAdapter treehouseQueryAdapter;
3234
private final BranchQueryAdapter branchQueryAdapter;
35+
36+
private final InvitationCommandAdapter invitationCommandAdapter;
3337
private final InvitationQueryAdapter invitationQueryAdapter;
3438

3539
private final BranchService branchService;
@@ -50,8 +54,8 @@ public MemberResponseDTO.registerMember register(User user, MemberRequestDTO.reg
5054
treeHouse.addMember(savedMember); // TreeHouse에 Member 추가
5155

5256
// 트리하우스에 초대한 멤버와의 브랜치 생성
53-
Invitation invitation = invitationQueryAdapter.findByReceiverAndTreeHouse(user, treeHouse);
54-
branchService.createBranch(treeHouse, invitation.getSender(), savedMember);
57+
Invitation acceptedInvitation = invitationQueryAdapter.findAcceptedInvitation(user, treeHouse);
58+
branchService.createBranch(treeHouse, acceptedInvitation.getSender(), savedMember);
5559

5660
return MemberMapper.toRegister(savedMember);
5761
}

src/main/resources/application.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ jwt:
7373
key: ${JWT_SECRET}
7474
# secret : ${JWT_SECRET}
7575
authorities-key: authoritiesKey
76-
access-token-validity-in-seconds: 180000 # 3 min
77-
refresh-token-validity-in-seconds: 600000 # 5 min
76+
access-token-validity-in-seconds: 600000 # 10 min
77+
refresh-token-validity-in-seconds: 1200000 # 20 min
7878

7979
firebase:
8080
admin-sdk: ${FCM_KEY}

0 commit comments

Comments
 (0)