You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
session-desktop/ts/session/apis/snode_api/swarm_polling_config/SwarmPollingUserConfig.ts

44 lines
1.6 KiB
TypeScript

import { ConfigMessageHandler } from '../../../../receiver/configMessage';
import { decryptEnvelopeWithOurKey } from '../../../../receiver/contentMessage';
import { RetrieveMessageItem } from '../types';
import { SwarmPollingConfigShared } from './SwarmPollingConfigShared';
async function handleUserSharedConfigMessages(
userConfigMessagesMerged: Array<RetrieveMessageItem>
) {
window.log.info(`received userConfigMessagesMerged count: ${userConfigMessagesMerged.length}`);
try {
const extractedUserConfigMessage = SwarmPollingConfigShared.extractWebSocketContents(
userConfigMessagesMerged
);
const allDecryptedConfigMessages = await SwarmPollingConfigShared.decryptSharedConfigMessages(
extractedUserConfigMessage,
decryptEnvelopeWithOurKey
);
if (allDecryptedConfigMessages.length) {
try {
window.log.info(
`handleConfigMessagesViaLibSession of "${allDecryptedConfigMessages.length}" messages with libsession`
);
await ConfigMessageHandler.handleUserConfigMessagesViaLibSession(
allDecryptedConfigMessages
);
} catch (e) {
const allMessageHases = allDecryptedConfigMessages.map(m => m.messageHash).join(',');
window.log.warn(
`failed to handle messages hashes "${allMessageHases}" with libsession. Error: "${e.message}"`
);
}
}
} catch (e) {
window.log.warn(
`handleSharedConfigMessages of ${userConfigMessagesMerged.length} failed with ${e.message}`
);
// not rethrowing
}
}
export const SwarmPollingUserConfig = { handleUserSharedConfigMessages };