Skip to content

Commit

Permalink
Merge pull request #248 from Team-Tiki/feat/#247-set-limit-team-nums
Browse files Browse the repository at this point in the history
[FEAT] 팀 가입시 개수 체크 로직 추가
  • Loading branch information
paragon0107 authored Feb 2, 2025
2 parents 1313ed2 + 5fd5fea commit bf2e8f7
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import com.tiki.server.memberteammanager.entity.MemberTeamManager;
import com.tiki.server.team.adapter.TeamFinder;
import com.tiki.server.team.entity.Team;
import com.tiki.server.team.exception.TeamException;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

Expand All @@ -22,6 +23,7 @@

import static com.tiki.server.email.teaminvitation.messages.ErrorCode.ALREADY_INVITED_MEMBER;
import static com.tiki.server.email.teaminvitation.messages.ErrorCode.NOT_MATCHED_MEMBER_INFORM;
import static com.tiki.server.team.message.ErrorCode.EXCEED_TEAM_NUMBER;

@Service
@RequiredArgsConstructor
Expand All @@ -44,6 +46,7 @@ public TeamInvitationInformGetResponse getInvitationInform(final long invitation
public void createTeamMemberFromInvitation(final long memberId, final long teamId, final long invitationId) {
checkIsPresentTeamMember(memberId, teamId);
Member member = memberFinder.findById(memberId);
checkTeamNumber(memberId);
Team team = teamFinder.findById(teamId);
TeamInvitation invitation = teamInvitationFinder.findByInvitationId(invitationId);
checkMemberMatched(invitation, member);
Expand Down Expand Up @@ -84,4 +87,12 @@ private void checkIsPresentTeamMember(long memberId, long teamId) {
throw new TeamInvitationException(ALREADY_INVITED_MEMBER);
}
}

private void checkTeamNumber(final long memberId) {
List<MemberTeamManager> joinedTeams = memberTeamManagerFinder.findAllByMemberIdOrderByCreatedAt(
memberId);
if (joinedTeams.size() > 8) {
throw new TeamException(EXCEED_TEAM_NUMBER);
}
}
}
1 change: 1 addition & 0 deletions src/main/java/com/tiki/server/team/message/ErrorCode.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ public enum ErrorCode {
TOO_HIGH_AUTHORIZATION(BAD_REQUEST, "어드민은 진행할 수 없습니다."),
TOO_SHORT_PERIOD(BAD_REQUEST, "30일이 지나야 이름을 변경할 수 있습니다."),
EXCEED_TEAM_CAPACITY(BAD_REQUEST, "팀 사용 가능 용량을 초과하였습니다."),
EXCEED_TEAM_NUMBER(BAD_REQUEST, "팀은 최대 8개까지 가입 가능합니다."),

/* 403 FORBIDDEN : 권한 없음 */
INVALID_AUTHORIZATION_DELETE(FORBIDDEN, "권한이 없습니다."),
Expand Down
12 changes: 12 additions & 0 deletions src/main/java/com/tiki/server/team/service/TeamService.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package com.tiki.server.team.service;

import static com.tiki.server.common.entity.Position.ADMIN;
import static com.tiki.server.team.message.ErrorCode.EXCEED_TEAM_NUMBER;

import com.tiki.server.team.exception.TeamException;
import java.util.List;

import com.tiki.server.document.adapter.DeletedDocumentAdapter;
Expand Down Expand Up @@ -72,6 +74,7 @@ public class TeamService {
@Transactional
public TeamCreateResponse createTeam(final long memberId, final TeamCreateRequest request) {
Member member = memberFinder.findById(memberId);
checkTeamNumber(memberId);
Team team = teamSaver.save(createTeam(request, member.getUniv()));
memberTeamManagerSaver.save(createMemberTeamManager(member, team, ADMIN));
return TeamCreateResponse.from(team);
Expand Down Expand Up @@ -165,4 +168,13 @@ private void deleteTimeBlocks(final long teamId) {
timeBlocks.forEach(dtbAdapter::deleteAllByTimeBlock);
timeBlockDeleter.deleteAllByTeamId(teamId);
}

private void checkTeamNumber(final long memberId) {
List<MemberTeamManager> joinedTeams = memberTeamManagerFinder.findAllByMemberIdOrderByCreatedAt(
memberId);
if (joinedTeams.size() > 8) {
throw new TeamException(EXCEED_TEAM_NUMBER);
}
}
}

0 comments on commit bf2e8f7

Please sign in to comment.