MCPcopy Create free account
hub / github.com/daodst/chat / LoadStateAtEvent

Method LoadStateAtEvent

roomserver/state/state.go:105–125  ·  view source on GitHub ↗

LoadStateAtEvent loads the full state of a room before a particular event.

(
	ctx context.Context, eventID string,
)

Source from the content-addressed store, hash-verified

103
104// LoadStateAtEvent loads the full state of a room before a particular event.
105func (v *StateResolution) LoadStateAtEvent(
106 ctx context.Context, eventID string,
107) ([]types.StateEntry, error) {
108 span, ctx := opentracing.StartSpanFromContext(ctx, "StateResolution.LoadStateAtEvent")
109 defer span.Finish()
110
111 snapshotNID, err := v.db.SnapshotNIDFromEventID(ctx, eventID)
112 if err != nil {
113 return nil, fmt.Errorf("LoadStateAtEvent.SnapshotNIDFromEventID failed for event %s : %w", eventID, err)
114 }
115 if snapshotNID == 0 {
116 return nil, fmt.Errorf("LoadStateAtEvent.SnapshotNIDFromEventID(%s) returned 0 NID, was this event stored?", eventID)
117 }
118
119 stateEntries, err := v.LoadStateAtSnapshot(ctx, snapshotNID)
120 if err != nil {
121 return nil, err
122 }
123
124 return stateEntries, nil
125}
126
127// LoadStateAtEvent loads the full state of a room before a particular event.
128func (v *StateResolution) LoadStateAtEventForHistoryVisibility(

Callers 1

Calls 2

LoadStateAtSnapshotMethod · 0.95

Tested by

no test coverage detected