diff --git a/src/main/java/com/example/cosmos_serversb/entities/Group.java b/src/main/java/com/example/cosmos_serversb/entities/Group.java index eb988d8..e774568 100644 --- a/src/main/java/com/example/cosmos_serversb/entities/Group.java +++ b/src/main/java/com/example/cosmos_serversb/entities/Group.java @@ -78,6 +78,10 @@ return members; } + public void deleteMember(User user){ + members.remove(user); + } + public void clearAllMembersForDeleteGroup(){ members.clear(); } @@ -96,10 +100,7 @@ } public boolean equals(Group group) { - if(this.gId == group.getgId()){ - return true; - } - return false; + return this.gId.equals(group.getgId()); } } diff --git a/src/main/java/com/example/cosmos_serversb/entities/User.java b/src/main/java/com/example/cosmos_serversb/entities/User.java index 592d2ea..7315afe 100644 --- a/src/main/java/com/example/cosmos_serversb/entities/User.java +++ b/src/main/java/com/example/cosmos_serversb/entities/User.java @@ -135,9 +135,6 @@ } public boolean equals(User user) { - if(this.uId == user.getuId()){ - return true; - } - return false; + return uId.equals(user.getuId()); } } \ No newline at end of file diff --git a/src/main/java/com/example/cosmos_serversb/models/Groups.java b/src/main/java/com/example/cosmos_serversb/models/Groups.java index 0b57aa5..13cf036 100644 --- a/src/main/java/com/example/cosmos_serversb/models/Groups.java +++ b/src/main/java/com/example/cosmos_serversb/models/Groups.java @@ -104,8 +104,22 @@ return null; } - public static HashMap deleteMember(String gId, String uId){ - return null; + public static DeleteResult deleteMember(String gId, String uId){ + Session session = SessionManager.getInstance().getSession(); + Group editGroup = session.get(Group.class, gId); + User editUser = session.get(User.class, uId); + if(editGroup != null){ + if(editGroup.getMembers().contains(editUser)){ + editUser.exitGroup(editGroup); + editGroup.deleteMember(editUser); + if(editGroup.getMembers().size() == 0){ + //ユーザーが存在しないグループは削除 + session.delete(editGroup); + } + return DeleteResult.SUCCESS; + } + } + return DeleteResult.FAILURE; } /*