import java.io.IOException;
import java.util.HashSet;
import java.util.Map;
+import java.util.Set;
import java.util.stream.Stream;
public class GetUserStatusCommand implements JsonRpcLocalCommand {
@Override
public void handleCommand(
- final Namespace ns, final Manager m, final OutputWriter outputWriter
+ final Namespace ns,
+ final Manager m,
+ final OutputWriter outputWriter
) throws CommandException {
// Get a map of registration statuses
Map<String, UserStatus> registered;
try {
- registered = m.getUserStatus(new HashSet<>(ns.getList("recipient")));
+ final var recipient = ns.<String>getList("recipient");
+ registered = m.getUserStatus(recipient == null ? Set.of() : new HashSet<>(recipient));
} catch (RateLimitException e) {
final var message = CommandUtil.getRateLimitMessage(e);
throw new RateLimitErrorException(message, e);
}
final var usernames = ns.<String>getList("username");
- final var registeredUsernames = usernames == null
- ? Map.<String, UsernameStatus>of()
- : m.getUsernameStatus(new HashSet<>(usernames));
+ final Map<String, UsernameStatus> registeredUsernames;
+ try {
+ registeredUsernames = usernames == null ? Map.of() : m.getUsernameStatus(new HashSet<>(usernames));
+ } catch (IOException e) {
+ throw new IOErrorException("Unable to check if users are registered: "
+ + e.getMessage()
+ + " ("
+ + e.getClass().getSimpleName()
+ + ")", e);
+ }
// Output
switch (outputWriter) {