]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/json/JsonSharedContact.java
Output "SharedContacts" field from a SignalDataMessage (#529)
[signal-cli] / src / main / java / org / asamk / signal / json / JsonSharedContact.java
1 package org.asamk.signal.json;
2
3 import com.fasterxml.jackson.annotation.JsonInclude;
4 import com.fasterxml.jackson.annotation.JsonProperty;
5
6 import org.whispersystems.signalservice.api.messages.shared.SharedContact;
7
8 import java.util.List;
9 import java.util.stream.Collectors;
10
11 public class JsonSharedContact {
12
13 @JsonProperty
14 final JsonContactName name;
15
16 @JsonProperty
17 final JsonContactAvatar avatar;
18
19 @JsonProperty
20 @JsonInclude(JsonInclude.Include.NON_NULL)
21 final List<JsonContactPhone> phone;
22
23 @JsonProperty
24 @JsonInclude(JsonInclude.Include.NON_NULL)
25 final List<JsonContactEmail> email;
26
27 @JsonProperty
28 @JsonInclude(JsonInclude.Include.NON_NULL)
29 final List<JsonContactAddress> address;
30
31 @JsonProperty
32 final String organization;
33
34
35 public JsonSharedContact(SharedContact contact) {
36 name = new JsonContactName(contact.getName());
37 if (contact.getAvatar().isPresent()) {
38 avatar = new JsonContactAvatar(contact.getAvatar().get());
39 } else {
40 avatar = null;
41 }
42
43 if (contact.getPhone().isPresent()) {
44 phone = contact.getPhone()
45 .get()
46 .stream()
47 .map(JsonContactPhone::new)
48 .collect(Collectors.toList());
49 } else {
50 phone = null;
51 }
52
53 if (contact.getEmail().isPresent()) {
54 email = contact.getEmail()
55 .get()
56 .stream()
57 .map(JsonContactEmail::new)
58 .collect(Collectors.toList());
59 } else {
60 email = null;
61 }
62
63 if (contact.getAddress().isPresent()) {
64 address = contact.getAddress()
65 .get()
66 .stream()
67 .map(JsonContactAddress::new)
68 .collect(Collectors.toList());
69 } else {
70 address = null;
71 }
72
73 organization = contact.getOrganization().orNull();
74 }
75 }