public sealed interface RecipientIdentifier {
+ String getIdentifier();
+
record NoteToSelf() implements RecipientIdentifier {
public static NoteToSelf INSTANCE = new NoteToSelf();
+
+ @Override
+ public String getIdentifier() {
+ return "Note-To-Self";
+ }
}
sealed interface Single extends RecipientIdentifier {
}
throw new AssertionError("RecipientAddress without identifier");
}
-
- String getIdentifier();
}
record Uuid(UUID uuid) implements Single {
}
}
- record Group(GroupId groupId) implements RecipientIdentifier {}
+ record Group(GroupId groupId) implements RecipientIdentifier {
+
+ @Override
+ public String getIdentifier() {
+ return groupId.toBase64();
+ }
+ }
}
import org.asamk.signal.manager.api.RecipientIdentifier;
import org.asamk.signal.manager.api.SendMessageResult;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.stream.Collectors;
public class ErrorUtils {
public static void handleSendMessageResults(
Map<RecipientIdentifier, List<SendMessageResult>> mapResults
) throws CommandException {
- List<String> errors = getErrorMessagesFromSendMessageResults(mapResults);
+ var errors = getErrorMessagesFromSendMessageResults(mapResults);
handleSendMessageResultErrors(errors);
}
}
public static List<String> getErrorMessagesFromSendMessageResults(final Map<RecipientIdentifier, List<SendMessageResult>> mapResults) {
- return mapResults.values()
+ return mapResults.entrySet()
.stream()
- .flatMap(results -> getErrorMessagesFromSendMessageResults(results).stream())
+ .flatMap(entry -> entry.getValue()
+ .stream()
+ .map(ErrorUtils::getErrorMessageFromSendMessageResult)
+ .filter(Objects::nonNull)
+ .map(error -> entry.getKey().getIdentifier() + ": " + error))
.collect(Collectors.toList());
}
public static List<String> getErrorMessagesFromSendMessageResults(Collection<SendMessageResult> results) {
- var errors = new ArrayList<String>();
- for (var result : results) {
- var error = getErrorMessageFromSendMessageResult(result);
- if (error != null) {
- errors.add(error);
- }
- }
-
- return errors;
+ return results.stream()
+ .map(ErrorUtils::getErrorMessageFromSendMessageResult)
+ .filter(Objects::nonNull)
+ .collect(Collectors.toList());
}
public static String getErrorMessageFromSendMessageResult(SendMessageResult result) {