]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/json/JsonSendMessageResult.java
Reexport dbus objects when self number changes
[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.SendMessageResult;
6 import org.asamk.signal.manager.groups.GroupId;
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.isNetworkFailure()
26 ? Type.NETWORK_FAILURE
27 : result.isUnregisteredFailure() ? Type.UNREGISTERED_FAILURE : Type.IDENTITY_FAILURE,
28 result.proofRequiredFailure() != null ? result.proofRequiredFailure().getToken() : null,
29 result.proofRequiredFailure() != null ? result.proofRequiredFailure().getRetryAfterSeconds() : null);
30 }
31
32 public enum Type {
33 SUCCESS,
34 NETWORK_FAILURE,
35 UNREGISTERED_FAILURE,
36 IDENTITY_FAILURE,
37 }
38 }