1 package org
.asamk
.signal
.manager
.api
;
3 import org
.asamk
.signal
.manager
.helper
.RecipientAddressResolver
;
4 import org
.asamk
.signal
.manager
.storage
.recipients
.RecipientResolver
;
5 import org
.signal
.libsignal
.protocol
.IdentityKey
;
7 public record SendMessageResult(
8 RecipientAddress address
,
10 boolean isNetworkFailure
,
11 boolean isUnregisteredFailure
,
12 boolean isIdentityFailure
,
13 boolean isRateLimitFailure
,
14 ProofRequiredException proofRequiredFailure
17 public static SendMessageResult
success(RecipientAddress address
) {
18 return new SendMessageResult(address
, true, false, false, false, false, null);
21 public static SendMessageResult
networkFailure(RecipientAddress address
) {
22 return new SendMessageResult(address
, false, true, false, false, false, null);
25 public static SendMessageResult
unregisteredFailure(RecipientAddress address
) {
26 return new SendMessageResult(address
, false, false, true, false, false, null);
29 public static SendMessageResult
identityFailure(RecipientAddress address
, IdentityKey identityKey
) {
30 return new SendMessageResult(address
, false, false, false, true, false, null);
33 public static SendMessageResult
proofRequiredFailure(
34 RecipientAddress address
, ProofRequiredException proofRequiredException
36 return new SendMessageResult(address
, false, true, false, false, false, proofRequiredException
);
39 public static SendMessageResult
from(
40 final org
.whispersystems
.signalservice
.api
.messages
.SendMessageResult sendMessageResult
,
41 RecipientResolver recipientResolver
,
42 RecipientAddressResolver addressResolver
44 return new SendMessageResult(addressResolver
.resolveRecipientAddress(recipientResolver
.resolveRecipient(
45 sendMessageResult
.getAddress())).toApiRecipientAddress(),
46 sendMessageResult
.isSuccess(),
47 sendMessageResult
.isNetworkFailure(),
48 sendMessageResult
.isUnregisteredFailure(),
49 sendMessageResult
.getIdentityFailure() != null,
50 sendMessageResult
.getRateLimitFailure() != null || sendMessageResult
.getProofRequiredFailure() != null,
51 sendMessageResult
.getProofRequiredFailure() == null
53 : new ProofRequiredException(sendMessageResult
.getProofRequiredFailure()));