60 lines
1.4 KiB
TypeScript
60 lines
1.4 KiB
TypeScript
// Copyright 2021 Signal Messenger, LLC
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
import { SignalService as Proto } from '../protobuf';
|
|
import { normalizeUuid } from '../util/normalizeUuid';
|
|
import type {
|
|
ProcessedUnidentifiedDeliveryStatus,
|
|
ProcessedSent,
|
|
ProcessedSyncMessage,
|
|
} from './Types.d';
|
|
|
|
import UnidentifiedDeliveryStatus = Proto.SyncMessage.Sent.IUnidentifiedDeliveryStatus;
|
|
|
|
function processUnidentifiedDeliveryStatus(
|
|
status: UnidentifiedDeliveryStatus
|
|
): ProcessedUnidentifiedDeliveryStatus {
|
|
const { destinationUuid } = status;
|
|
|
|
return {
|
|
...status,
|
|
|
|
destinationUuid: destinationUuid
|
|
? normalizeUuid(
|
|
destinationUuid,
|
|
'syncMessage.sent.unidentifiedStatus.destinationUuid'
|
|
)
|
|
: undefined,
|
|
};
|
|
}
|
|
|
|
function processSent(
|
|
sent?: Proto.SyncMessage.ISent | null
|
|
): ProcessedSent | undefined {
|
|
if (!sent) {
|
|
return undefined;
|
|
}
|
|
|
|
const { destinationUuid, unidentifiedStatus } = sent;
|
|
|
|
return {
|
|
...sent,
|
|
|
|
destinationUuid: destinationUuid
|
|
? normalizeUuid(destinationUuid, 'syncMessage.sent.destinationUuid')
|
|
: undefined,
|
|
|
|
unidentifiedStatus: unidentifiedStatus
|
|
? unidentifiedStatus.map(processUnidentifiedDeliveryStatus)
|
|
: undefined,
|
|
};
|
|
}
|
|
|
|
export function processSyncMessage(
|
|
syncMessage: Proto.ISyncMessage
|
|
): ProcessedSyncMessage {
|
|
return {
|
|
...syncMessage,
|
|
sent: processSent(syncMessage.sent),
|
|
};
|
|
}
|