X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/cd7172ee57049d292e7916ef58886d74bc82fcf7..467a48bac508b56f84dce7ee0b81a22fd0d32161:/src/main/java/org/asamk/signal/commands/BlockCommand.java diff --git a/src/main/java/org/asamk/signal/commands/BlockCommand.java b/src/main/java/org/asamk/signal/commands/BlockCommand.java index 0710a7e5..7326c398 100644 --- a/src/main/java/org/asamk/signal/commands/BlockCommand.java +++ b/src/main/java/org/asamk/signal/commands/BlockCommand.java @@ -8,12 +8,10 @@ import org.asamk.signal.commands.exceptions.CommandException; import org.asamk.signal.commands.exceptions.UserErrorException; import org.asamk.signal.manager.Manager; import org.asamk.signal.manager.NotMasterDeviceException; -import org.asamk.signal.manager.groups.GroupIdFormatException; import org.asamk.signal.manager.groups.GroupNotFoundException; -import org.asamk.signal.util.Util; +import org.asamk.signal.util.CommandUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.whispersystems.signalservice.api.util.InvalidNumberException; public class BlockCommand implements JsonRpcLocalCommand { @@ -35,23 +33,22 @@ public class BlockCommand implements JsonRpcLocalCommand { public void handleCommand( final Namespace ns, final Manager m, final OutputWriter outputWriter ) throws CommandException { - for (var contactNumber : ns.getList("contact")) { + final var contacts = ns.getList("contact"); + for (var contact : CommandUtil.getSingleRecipientIdentifiers(contacts, m.getUsername())) { try { - m.setContactBlocked(contactNumber, true); - } catch (InvalidNumberException e) { - logger.warn("Invalid number {}: {}", contactNumber, e.getMessage()); + m.setContactBlocked(contact, true); } catch (NotMasterDeviceException e) { throw new UserErrorException("This command doesn't work on linked devices."); } } - if (ns.getList("group-id") != null) { - for (var groupIdString : ns.getList("group-id")) { + final var groupIdStrings = ns.getList("group-id"); + if (groupIdStrings != null) { + for (var groupId : CommandUtil.getGroupIds(groupIdStrings)) { try { - var groupId = Util.decodeGroupId(groupIdString); m.setGroupBlocked(groupId, true); - } catch (GroupIdFormatException | GroupNotFoundException e) { - logger.warn("Invalid group id {}: {}", groupIdString, e.getMessage()); + } catch (GroupNotFoundException e) { + logger.warn("Group not found {}: {}", groupId.toBase64(), e.getMessage()); } } }