1
0
mirror of https://github.com/matrix-org/matrix-js-sdk.git synced 2025-11-26 17:03:12 +03:00

map, decrypt and return original_event if present

This commit is contained in:
Bruno Windels
2019-07-09 17:52:58 +02:00
parent cc1c7561a3
commit de18283c3b

View File

@@ -4081,15 +4081,21 @@ async function(roomId, eventId, relationType, eventType, opts = {}) {
relationType, relationType,
fetchedEventType, fetchedEventType,
opts); opts);
const mapper = this.getEventMapper();
let events = result.chunk.map(this.getEventMapper()); let originalEvent;
if (result.original_event) {
originalEvent = mapper(result.original_event);
}
let events = result.chunk.map(mapper);
if (fetchedEventType === "m.room.encrypted") { if (fetchedEventType === "m.room.encrypted") {
await Promise.all(events.map(e => { const allEvents = originalEvent ? events.concat(originalEvent) : events;
await Promise.all(allEvents.map(e => {
return new Promise(resolve => e.once("Event.decrypted", resolve)); return new Promise(resolve => e.once("Event.decrypted", resolve));
})); }));
events = events.filter(e => e.getType() === eventType); events = events.filter(e => e.getType() === eventType);
} }
return { return {
originalEvent,
events, events,
nextBatch: result.next_batch, nextBatch: result.next_batch,
}; };