X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/a2debdb2347b103c6b49b5b2dacfcfabb27fff71..2016cf2a5fdf83310d78ca1672a313884880f26e:/src/main/java/org/asamk/signal/commands/GetUserStatusCommand.java diff --git a/src/main/java/org/asamk/signal/commands/GetUserStatusCommand.java b/src/main/java/org/asamk/signal/commands/GetUserStatusCommand.java index 4bc209cd..69140b23 100644 --- a/src/main/java/org/asamk/signal/commands/GetUserStatusCommand.java +++ b/src/main/java/org/asamk/signal/commands/GetUserStatusCommand.java @@ -6,13 +6,15 @@ import net.sourceforge.argparse4j.inf.Subparser; import org.asamk.signal.JsonWriter; import org.asamk.signal.OutputType; +import org.asamk.signal.PlainTextWriterImpl; +import org.asamk.signal.commands.exceptions.CommandException; +import org.asamk.signal.commands.exceptions.IOErrorException; import org.asamk.signal.manager.Manager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; import java.util.HashSet; -import java.util.List; import java.util.Map; import java.util.Set; import java.util.stream.Collectors; @@ -36,9 +38,9 @@ public class GetUserStatusCommand implements LocalCommand { } @Override - public int handleCommand(final Namespace ns, final Manager m) { + public void handleCommand(final Namespace ns, final Manager m) throws CommandException { // Setup the json object mapper - boolean inJson = ns.get("output") == OutputType.JSON || ns.getBoolean("json"); + var inJson = ns.get("output") == OutputType.JSON || ns.getBoolean("json"); // TODO delete later when "json" variable is removed if (ns.getBoolean("json")) { @@ -50,32 +52,27 @@ public class GetUserStatusCommand implements LocalCommand { try { registered = m.areUsersRegistered(new HashSet<>(ns.getList("number"))); } catch (IOException e) { - System.err.println("Unable to check if users are registered"); - return 3; + logger.debug("Failed to check registered users", e); + throw new IOErrorException("Unable to check if users are registered"); } // Output if (inJson) { - final JsonWriter jsonWriter = new JsonWriter(System.out); + final var jsonWriter = new JsonWriter(System.out); - List jsonUserStatuses = registered.entrySet() + var jsonUserStatuses = registered.entrySet() .stream() .map(entry -> new JsonUserStatus(entry.getKey(), entry.getValue())) .collect(Collectors.toList()); - try { - jsonWriter.write(jsonUserStatuses); - } catch (IOException e) { - logger.error("Failed to write json object: {}", e.getMessage()); - return 3; - } + jsonWriter.write(jsonUserStatuses); } else { - for (Map.Entry entry : registered.entrySet()) { - System.out.println(entry.getKey() + ": " + entry.getValue()); + final var writer = new PlainTextWriterImpl(System.out); + + for (var entry : registered.entrySet()) { + writer.println("{}: {}", entry.getKey(), entry.getValue()); } } - - return 0; } private static final class JsonUserStatus {