]> nmode's Git Repositories - signal-cli/blob - lib/src/main/java/org/asamk/signal/manager/api/SendMessageResult.java
Convert classes to records
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / api / SendMessageResult.java
1 package org.asamk.signal.manager.api;
2
3 import org.asamk.signal.manager.helper.RecipientAddressResolver;
4 import org.asamk.signal.manager.storage.recipients.RecipientResolver;
5
6 public record SendMessageResult(
7 RecipientAddress address,
8 boolean isSuccess,
9 boolean isNetworkFailure,
10 boolean isUnregisteredFailure,
11 boolean isIdentityFailure,
12 boolean isRateLimitFailure,
13 ProofRequiredException proofRequiredFailure,
14 boolean isInvalidPreKeyFailure
15 ) {
16
17 public static SendMessageResult unregisteredFailure(RecipientAddress address) {
18 return new SendMessageResult(address, false, false, true, false, false, null, false);
19 }
20
21 public static SendMessageResult from(
22 final org.whispersystems.signalservice.api.messages.SendMessageResult sendMessageResult,
23 RecipientResolver recipientResolver,
24 RecipientAddressResolver addressResolver
25 ) {
26 return new SendMessageResult(addressResolver.resolveRecipientAddress(recipientResolver.resolveRecipient(
27 sendMessageResult.getAddress())).toApiRecipientAddress(),
28 sendMessageResult.isSuccess(),
29 sendMessageResult.isNetworkFailure(),
30 sendMessageResult.isUnregisteredFailure(),
31 sendMessageResult.getIdentityFailure() != null,
32 sendMessageResult.getRateLimitFailure() != null || sendMessageResult.getProofRequiredFailure() != null,
33 sendMessageResult.getProofRequiredFailure() == null
34 ? null
35 : new ProofRequiredException(sendMessageResult.getProofRequiredFailure()),
36 sendMessageResult.isInvalidPreKeyFailure());
37 }
38 }