]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/json/JsonSharedContact.java
ea15b5748ff379e76faf801d661b03abc09bc88b
[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 public JsonSharedContact(SharedContact contact) {
35 name = new JsonContactName(contact.getName());
36 if (contact.getAvatar().isPresent()) {
37 avatar = new JsonContactAvatar(contact.getAvatar().get());
38 } else {
39 avatar = null;
40 }
41
42 if (contact.getPhone().isPresent()) {
43 phone = contact.getPhone().get().stream().map(JsonContactPhone::new).collect(Collectors.toList());
44 } else {
45 phone = null;
46 }
47
48 if (contact.getEmail().isPresent()) {
49 email = contact.getEmail().get().stream().map(JsonContactEmail::new).collect(Collectors.toList());
50 } else {
51 email = null;
52 }
53
54 if (contact.getAddress().isPresent()) {
55 address = contact.getAddress().get().stream().map(JsonContactAddress::new).collect(Collectors.toList());
56 } else {
57 address = null;
58 }
59
60 organization = contact.getOrganization().orNull();
61 }
62 }