You've already forked matrix-js-sdk
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:
@@ -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,
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user