]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/commands/UpdateGroupCommand.java
Implement remove group members
[signal-cli] / src / main / java / org / asamk / signal / commands / UpdateGroupCommand.java
index 48efde750fba9dba87a71e9d2640002e4bcdc2d5..513ec2e4c7b0fed88f16211eb9b9534119cb395a 100644 (file)
@@ -38,6 +38,9 @@ public class UpdateGroupCommand implements DbusCommand, LocalCommand {
         subparser.addArgument("-d", "--description").help("Specify the new group description.");
         subparser.addArgument("-a", "--avatar").help("Specify a new group avatar image file");
         subparser.addArgument("-m", "--member").nargs("*").help("Specify one or more members to add to the group");
+        subparser.addArgument("-r", "--remove-member")
+                .nargs("*")
+                .help("Specify one or more members to remove from the group");
     }
 
     @Override
@@ -59,18 +62,26 @@ public class UpdateGroupCommand implements DbusCommand, LocalCommand {
 
         List<String> groupMembers = ns.getList("member");
 
+        List<String> groupRemoveMembers = ns.getList("remove-member");
+
         var groupAvatar = ns.getString("avatar");
 
         try {
-            var results = m.updateGroup(groupId,
-                    groupName,
-                    groupDescription,
-                    groupMembers,
-                    groupAvatar == null ? null : new File(groupAvatar));
-            ErrorUtils.handleTimestampAndSendMessageResults(writer, 0, results.second());
-            final var newGroupId = results.first();
             if (groupId == null) {
+                var results = m.createGroup(groupName,
+                        groupMembers,
+                        groupAvatar == null ? null : new File(groupAvatar));
+                ErrorUtils.handleTimestampAndSendMessageResults(writer, 0, results.second());
+                final var newGroupId = results.first();
                 writer.println("Created new group: \"{}\"", newGroupId.toBase64());
+            } else {
+                var results = m.updateGroup(groupId,
+                        groupName,
+                        groupDescription,
+                        groupMembers,
+                        groupRemoveMembers,
+                        groupAvatar == null ? null : new File(groupAvatar));
+                ErrorUtils.handleTimestampAndSendMessageResults(writer, results.first(), results.second());
             }
         } catch (AttachmentInvalidException e) {
             throw new UserErrorException("Failed to add avatar attachment for group\": " + e.getMessage());