Skip to content

Commit 4b0bc95

Browse files
author
Daenges
committed
Allow leaving studygroup by superid
1 parent 84e934c commit 4b0bc95

File tree

4 files changed

+14
-1
lines changed

4 files changed

+14
-1
lines changed

server/src/main/java/com/studybuddies/server/persistance/StudyGroupId.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
@NoArgsConstructor
1616
@AllArgsConstructor
1717
public class StudyGroupId implements Serializable {
18-
1918
private UUID userId;
2019
private UUID meetingId;
2120
}

server/src/main/java/com/studybuddies/server/persistance/StudyGroupRepository.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,12 @@ public interface StudyGroupRepository extends CrudRepository<StudyGroupEntity, S
2121
@Transactional
2222
@Query("DELETE FROM StudyGroupEntity s WHERE s.id.userId = :userId AND s.id.meetingId = :meetingId")
2323
void deleteByUserIdAndMeetingId(@Param("userId") UUID userId, @Param("meetingId") UUID meetingId);
24+
25+
@Modifying
26+
@Transactional
27+
@Query("DELETE FROM StudyGroupEntity s WHERE s.user.id = :userId AND s.meeting.superId = :meetingSuperId")
28+
void deleteByUserIdAndSuperMeetingId(@Param("userId") UUID userId, @Param("meetingSuperId") UUID meetingSuperId);
29+
2430
}
2531

2632

server/src/main/java/com/studybuddies/server/services/StudyGroupService.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,9 @@ else if (!Objects.equals(request.superMeetingID, "")) {
5959

6060
@Override
6161
public void delete(String targetUUID, String clientUUID) {
62+
// Restricted through the CRUD Interface :/
6263
leaveMeeting(clientUUID, targetUUID);
64+
leaveSuperMeeting(clientUUID, targetUUID);
6365
}
6466

6567
private void joinMeeting(UserEntity userEntity, MeetingEntity meetingEntity) {
@@ -78,6 +80,11 @@ private void leaveMeeting(String userUUID, String meetingUUID) {
7880
UUIDService.parseUUID(meetingUUID));
7981
}
8082

83+
private void leaveSuperMeeting(String userUUID, String meetingSuperUUID) {
84+
studyGroupRepository.deleteByUserIdAndSuperMeetingId(UUIDService.parseUUID(userUUID),
85+
UUIDService.parseUUID(meetingSuperUUID));
86+
}
87+
8188
private List<StudyGroupEntity> findStudyGroupsByUUID(String someUUID) {
8289
return studyGroupRepository.findByUserIdOrMeetingId(UUIDService.parseUUID(someUUID))
8390
.orElseThrow(() -> new InvalidUUIDException("UUID was invalid"));

server/src/main/java/com/studybuddies/server/web/dto/studygroup/StudyGroupLeaveRequest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,5 @@
55
public class StudyGroupLeaveRequest implements ChangeRequest {
66

77
public String meetingId;
8+
public String meetingSuperId;
89
}

0 commit comments

Comments
 (0)