]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/json/JsonSendMessageResult.java
Update documentation
[signal-cli] / src / main / java / org / asamk / signal / json / JsonSendMessageResult.java
1 package org.asamk.signal.json;
2
3 import com.fasterxml.jackson.annotation.JsonInclude;
4
5 import org.asamk.signal.manager.api.GroupId;
6 import org.asamk.signal.manager.api.SendMessageResult;
7
8 public record JsonSendMessageResult(
9 JsonRecipientAddress recipientAddress,
10 @JsonInclude(JsonInclude.Include.NON_NULL) String groupId,
11 Type type,
12 @JsonInclude(JsonInclude.Include.NON_NULL) String token,
13 @JsonInclude(JsonInclude.Include.NON_NULL) Long retryAfterSeconds
14 ) {
15
16 public static JsonSendMessageResult from(SendMessageResult result) {
17 return from(result, null);
18 }
19
20 public static JsonSendMessageResult from(SendMessageResult result, GroupId groupId) {
21 return new JsonSendMessageResult(JsonRecipientAddress.from(result.address()),
22 groupId != null ? groupId.toBase64() : null,
23 result.isSuccess()
24 ? Type.SUCCESS
25 : result.isRateLimitFailure()
26 ? Type.RATE_LIMIT_FAILURE
27 : result.isNetworkFailure()
28 ? Type.NETWORK_FAILURE
29 : result.isUnregisteredFailure()
30 ? Type.UNREGISTERED_FAILURE
31 : result.isInvalidPreKeyFailure()
32 ? Type.INVALID_PRE_KEY_FAILURE
33 : Type.IDENTITY_FAILURE,
34 result.proofRequiredFailure() != null ? result.proofRequiredFailure().getToken() : null,
35 result.proofRequiredFailure() != null ? result.proofRequiredFailure().getRetryAfterSeconds() : null);
36 }
37
38 public enum Type {
39 SUCCESS,
40 NETWORK_FAILURE,
41 UNREGISTERED_FAILURE,
42 IDENTITY_FAILURE,
43 RATE_LIMIT_FAILURE,
44 INVALID_PRE_KEY_FAILURE,
45 }
46 }