Skip to content

Commit a12ae76

Browse files
committed
fix second event
1 parent cfe79dd commit a12ae76

File tree

1 file changed

+13
-12
lines changed

1 file changed

+13
-12
lines changed

packages/federation-sdk/src/services/state.service.ts

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -223,8 +223,8 @@ export class StateService {
223223
includeEvent = false,
224224
): Promise<State> {
225225
this.logger.debug({ eventId }, 'finding state before event');
226-
const event = await this.eventRepository.findById(eventId);
227226

227+
const event = await this.eventRepository.findById(eventId);
228228
if (!event) {
229229
this.logger.error({ eventId }, 'event not found');
230230
throw new Error(`Event ${eventId} not found`);
@@ -247,7 +247,6 @@ export class StateService {
247247
return new Map();
248248
}
249249

250-
251250
console.log('pdu ->>>', pdu.isState(), pdu.type);
252251
// Retrieves a snapshot of a room's state at a given event, in the form of event IDs. This performs the same function as calling /state/{roomId}, however this returns just the event IDs rather than the full events.
253252
const stateId = !pdu.isState()
@@ -257,6 +256,7 @@ export class StateService {
257256
const { delta: lastStateDelta, prevStateIds = [] } =
258257
(await this.stateRepository.getStateById(stateId)) ?? {};
259258

259+
console.log('prevStateIds ->>>', prevStateIds);
260260
console.log('stateId ->>>', stateId);
261261

262262
this.logger.debug({ delta: lastStateDelta, prevStateIds }, 'last state');
@@ -266,28 +266,29 @@ export class StateService {
266266
throw new Error(`State at event ${eventId} not found`);
267267
}
268268

269+
const state = new Map<StateMapKey, PersistentEventBase>();
270+
269271
if (prevStateIds.length === 0) {
270-
const state = new Map<StateMapKey, PersistentEventBase>();
271-
const { identifier: stateKey, eventId: _lastStateEventId } =
272-
lastStateDelta;
273-
const event = await this.eventRepository.findById(eventId);
274-
if (!event) {
275-
throw new Error(`Event ${eventId} not found`);
272+
const previous = await this.eventRepository.findById(
273+
lastStateDelta.eventId,
274+
);
275+
if (!previous) {
276+
throw new Error(`Event ${lastStateDelta.eventId} not found`);
276277
}
277278

278279
state.set(
279-
stateKey as StateMapKey,
280-
PersistentEventFactory.createFromRawEvent(event.event, roomVersion),
280+
lastStateDelta.identifier,
281+
PersistentEventFactory.createFromRawEvent(previous.event, roomVersion),
281282
);
282283

283284
return state;
284285
}
285286

286287
const stateMappings = await this.stateRepository
287-
.getStateMappingsByStateIdsOrdered([...prevStateIds, stateId])
288+
.getStateMappingsByStateIdsOrdered(prevStateIds)
288289
.toArray();
289290

290-
const state = new Map<StateMapKey, PersistentEventBase>();
291+
console.log('stateMappings ->', stateMappings);
291292

292293
for await (const { delta } of stateMappings) {
293294
const { identifier: stateKey, eventId } = delta;

0 commit comments

Comments
 (0)