]>
nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/json/JsonSharedContact.java
1 package org
.asamk
.signal
.json
;
3 import com
.fasterxml
.jackson
.annotation
.JsonInclude
;
5 import org
.asamk
.signal
.manager
.api
.MessageEnvelope
;
9 public record JsonSharedContact(
11 @JsonInclude(JsonInclude
.Include
.NON_NULL
) JsonContactAvatar avatar
,
12 @JsonInclude(JsonInclude
.Include
.NON_NULL
) List
<JsonContactPhone
> phone
,
13 @JsonInclude(JsonInclude
.Include
.NON_NULL
) List
<JsonContactEmail
> email
,
14 @JsonInclude(JsonInclude
.Include
.NON_NULL
) List
<JsonContactAddress
> address
,
18 static JsonSharedContact
from(MessageEnvelope
.Data
.SharedContact contact
) {
19 final var name
= JsonContactName
.from(contact
.name());
20 final var avatar
= contact
.avatar().isPresent() ? JsonContactAvatar
.from(contact
.avatar().get()) : null;
22 final var phone
= !contact
.phone().isEmpty()
23 ? contact
.phone().stream().map(JsonContactPhone
::from
).toList()
26 final var email
= !contact
.email().isEmpty()
27 ? contact
.email().stream().map(JsonContactEmail
::from
).toList()
30 final var address
= !contact
.address().isEmpty() ? contact
.address()
32 .map(JsonContactAddress
::from
)
35 final var organization
= contact
.organization().orElse(null);
37 return new JsonSharedContact(name
, avatar
, phone
, email
, address
, organization
);