X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/ceafe96e81150991e538bf6f446124ecc15f149f..06e93b84da2718c31111e820cd35a3354f22bae2:/src/main/java/org/asamk/signal/json/JsonSendMessageResult.java diff --git a/src/main/java/org/asamk/signal/json/JsonSendMessageResult.java b/src/main/java/org/asamk/signal/json/JsonSendMessageResult.java new file mode 100644 index 00000000..9b80a3aa --- /dev/null +++ b/src/main/java/org/asamk/signal/json/JsonSendMessageResult.java @@ -0,0 +1,38 @@ +package org.asamk.signal.json; + +import com.fasterxml.jackson.annotation.JsonInclude; + +import org.asamk.signal.manager.api.SendMessageResult; +import org.asamk.signal.manager.groups.GroupId; + +public record JsonSendMessageResult( + JsonRecipientAddress recipientAddress, + @JsonInclude(JsonInclude.Include.NON_NULL) String groupId, + Type type, + @JsonInclude(JsonInclude.Include.NON_NULL) String token, + @JsonInclude(JsonInclude.Include.NON_NULL) Long retryAfterSeconds +) { + + public static JsonSendMessageResult from(SendMessageResult result) { + return from(result, null); + } + + public static JsonSendMessageResult from(SendMessageResult result, GroupId groupId) { + return new JsonSendMessageResult(JsonRecipientAddress.from(result.address()), + groupId != null ? groupId.toBase64() : null, + result.isSuccess() + ? Type.SUCCESS + : result.isNetworkFailure() + ? Type.NETWORK_FAILURE + : result.isUnregisteredFailure() ? Type.UNREGISTERED_FAILURE : Type.IDENTITY_FAILURE, + result.proofRequiredFailure() != null ? result.proofRequiredFailure().getToken() : null, + result.proofRequiredFailure() != null ? result.proofRequiredFailure().getRetryAfterSeconds() : null); + } + + public enum Type { + SUCCESS, + NETWORK_FAILURE, + UNREGISTERED_FAILURE, + IDENTITY_FAILURE, + } +}