mirror of
https://github.com/AsamK/signal-cli.git
synced 2026-08-26 05:36:53 +00:00
32 lines
1.3 KiB
Java
32 lines
1.3 KiB
Java
package org.asamk.signal.json;
|
|
|
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
|
import com.fasterxml.jackson.annotation.JsonUnwrapped;
|
|
import io.micronaut.jsonschema.JsonSchema;
|
|
|
|
import org.asamk.signal.manager.Manager;
|
|
import org.asamk.signal.manager.api.MessageEnvelope;
|
|
import org.asamk.signal.manager.api.RecipientAddress;
|
|
|
|
import java.util.UUID;
|
|
|
|
@JsonSchema(title = "SyncDataMessage")
|
|
record JsonSyncDataMessage(
|
|
@Deprecated String destination,
|
|
String destinationNumber,
|
|
String destinationUuid,
|
|
@JsonInclude(JsonInclude.Include.NON_NULL) JsonEditMessage editMessage,
|
|
@JsonUnwrapped JsonDataMessage dataMessage
|
|
) {
|
|
|
|
static JsonSyncDataMessage from(MessageEnvelope.Sync.Sent transcriptMessage, Manager m) {
|
|
return new JsonSyncDataMessage(transcriptMessage.destination()
|
|
.map(RecipientAddress::getLegacyIdentifier)
|
|
.orElse(null),
|
|
transcriptMessage.destination().flatMap(RecipientAddress::number).orElse(null),
|
|
transcriptMessage.destination().flatMap(address -> address.uuid().map(UUID::toString)).orElse(null),
|
|
transcriptMessage.editMessage().map(data -> JsonEditMessage.from(data, m)).orElse(null),
|
|
transcriptMessage.message().map(data -> JsonDataMessage.from(data, m)).orElse(null));
|
|
}
|
|
}
|