Skip to content

Commit

Permalink
[fix] #134 delete empty promises when make a promise alone and leave …
Browse files Browse the repository at this point in the history
…meeting (#135)
  • Loading branch information
chaewonni authored Sep 7, 2024
1 parent b7a6968 commit db066d3
Showing 1 changed file with 14 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import lombok.extern.slf4j.Slf4j;
import org.kkumulkkum.server.domain.Meeting;
import org.kkumulkkum.server.domain.Member;
import org.kkumulkkum.server.domain.Promise;
import org.kkumulkkum.server.dto.meeting.MeetingMetCountDto;
import org.kkumulkkum.server.dto.meeting.request.MeetingCreateDto;
import org.kkumulkkum.server.dto.meeting.request.MeetingRegisterDto;
Expand All @@ -18,7 +19,9 @@
import org.kkumulkkum.server.service.member.MemberRetreiver;
import org.kkumulkkum.server.service.member.MemberSaver;
import org.kkumulkkum.server.service.participant.ParticipantRemover;
import org.kkumulkkum.server.service.participant.ParticipantRetriever;
import org.kkumulkkum.server.service.promise.PromiseRemover;
import org.kkumulkkum.server.service.promise.PromiseRetriever;
import org.kkumulkkum.server.service.user.UserRetriever;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
Expand All @@ -41,6 +44,8 @@ public class MeetingService {
private final MemberRemover memberRemover;
private final PromiseRemover promiseRemover;
private final MeetingRemover meetingRemover;
private final PromiseRetriever promiseRetriever;
private final ParticipantRetriever participantRetriever;

@Transactional
public CreatedMeetingDto createMeeting(
Expand Down Expand Up @@ -127,6 +132,9 @@ public void leaveMeeting(
promiseRemover.deleteByMeetingId(meetingId);
meetingRemover.deleteById(meetingId);
}

//모임 내의 약속들 모두 돌려서, 거기서 참여자가 없는 약속이 있다면 지우기
removeEmptyPromises(meetingId);
}

private String generateInvitationCode() {
Expand All @@ -152,4 +160,10 @@ private String generateRandomCode() {
return codeBuilder.toString();
}

private void removeEmptyPromises(final Long meetingId) {
promiseRetriever.findAllByMeetingId(meetingId).stream()
.filter(promise -> participantRetriever.findAllByPromiseId(promise.getId()).isEmpty())
.forEach(promise -> promiseRemover.deleteById(promise.getId()));
}

}

0 comments on commit db066d3

Please sign in to comment.