-
Notifications
You must be signed in to change notification settings - Fork 404
Description
This issue has been migrated from #15454.
Problem
Currently when you GET /_matrix/client/v3/rooms/{room_id}/state/m.room.create?format=event (notice the event format), it doesn't include event_id which is kinda annoying to work with and reference.
Example:
{
"content": {
"creator": "@foo:bar",
"room_version": "6"
},
"origin_server_ts": 1606978812896,
"room_id": "!abc",
"sender": "@foo:bar",
"state_key": "",
"type": "m.room.create",
"unsigned": {
"age_ts": 1606978812896
}
}Proposal
Add event_id to the output. There is no spec to go off of but seems like a non-breaking change we can do.
Spawning from a need in matrix-org/matrix-viewer#167 to get the event_id of the m.room.create event in the room.
Is there a better way to do this? Perhaps /_matrix/client/v3/rooms/{room_id}/messages?dir=f&limit=1
Dev notes
- Relevant spec issue for the
?formatquery parameter: Spec?format=event|contentonGET /state/:type[/:key]matrix-org/matrix-spec#1047 ?formatintroduced to Synapse in Allow clients to ask for the whole of a single state event matrix-org/synapse#1094
Relevant code:
Currently, we use format_event_for_client_v2(data.get_dict()) against the EventBase PDU JSON dictionary which doesn't include event_id. We could instead use serialize_event(data, self.clock.time_msec()) which would get us something more workable.
We could also alternatively, add event_id to the dictionary returned by EventBase.get_dict() but that probably has too many downstream side-effects like messing with the PDU JSON serialization stuff.
Separately, it would be good to standardize with the ?event_format=client|federation parameter used with other endpoints