aboutsummaryrefslogtreecommitdiff
path: root/roomserver
diff options
context:
space:
mode:
authorNeil Alexander <neilalexander@users.noreply.github.com>2020-03-19 12:07:01 +0000
committerGitHub <noreply@github.com>2020-03-19 12:07:01 +0000
commitad5849d2224245e1277b8bc7d3e2104ed6061a99 (patch)
tree8551c3d1096a650ecca0cba0e5edf6ad91d078e0 /roomserver
parentbfbf96eec9152f61cb3e54154f1ed82148d82a8a (diff)
HeaderedEvents in sync API (#922)
* Use HeaderedEvent in syncapi * Update notifier test * Fix persisting headered event * Clean up unused API function * Fix overshadowed err from linter * Write headered JSON to invites table too * Rename event_json to headered_event_json in syncapi database schemae * Fix invites_table queries * Update QueryRoomVersionCapabilitiesResponse comment * Fix syncapi SQLite
Diffstat (limited to 'roomserver')
-rw-r--r--roomserver/api/query.go14
-rw-r--r--roomserver/query/query.go9
-rw-r--r--roomserver/storage/postgres/storage.go2
-rw-r--r--roomserver/storage/sqlite3/storage.go2
4 files changed, 16 insertions, 11 deletions
diff --git a/roomserver/api/query.go b/roomserver/api/query.go
index 24cca03e..9003a95a 100644
--- a/roomserver/api/query.go
+++ b/roomserver/api/query.go
@@ -43,6 +43,8 @@ type QueryLatestEventsAndStateResponse struct {
// Does the room exist?
// If the room doesn't exist this will be false and LatestEvents will be empty.
RoomExists bool `json:"room_exists"`
+ // The room version of the room.
+ RoomVersion gomatrixserverlib.RoomVersion `json:"room_version"`
// The latest events in the room.
// These are used to set the prev_events when sending an event.
LatestEvents []gomatrixserverlib.EventReference `json:"latest_events"`
@@ -74,6 +76,8 @@ type QueryStateAfterEventsResponse struct {
// Does the room exist on this roomserver?
// If the room doesn't exist this will be false and StateEvents will be empty.
RoomExists bool `json:"room_exists"`
+ // The room version of the room.
+ RoomVersion gomatrixserverlib.RoomVersion `json:"room_version"`
// Do all the previous events exist on this roomserver?
// If some of previous events do not exist this will be false and StateEvents will be empty.
PrevEventsExist bool `json:"prev_events_exist"`
@@ -207,6 +211,8 @@ type QueryStateAndAuthChainResponse struct {
// Does the room exist on this roomserver?
// If the room doesn't exist this will be false and StateEvents will be empty.
RoomExists bool `json:"room_exists"`
+ // The room version of the room.
+ RoomVersion gomatrixserverlib.RoomVersion `json:"room_version"`
// Do all the previous events exist on this roomserver?
// If some of previous events do not exist this will be false and StateEvents will be empty.
PrevEventsExist bool `json:"prev_events_exist"`
@@ -249,10 +255,10 @@ type QueryServersInRoomAtEventResponse struct {
// QueryRoomVersionCapabilities asks for the default room version
type QueryRoomVersionCapabilitiesRequest struct{}
-// QueryRoomVersionCapabilitiesResponse is a response to QueryServersInRoomAtEventResponse
+// QueryRoomVersionCapabilitiesResponse is a response to QueryRoomVersionCapabilitiesRequest
type QueryRoomVersionCapabilitiesResponse struct {
- DefaultRoomVersion string `json:"default"`
- AvailableRoomVersions map[string]string `json:"available"`
+ DefaultRoomVersion gomatrixserverlib.RoomVersion `json:"default"`
+ AvailableRoomVersions map[gomatrixserverlib.RoomVersion]string `json:"available"`
}
// RoomserverQueryAPI is used to query information from the room server.
@@ -536,7 +542,7 @@ func (h *httpRoomserverQueryAPI) QueryServersInRoomAtEvent(
return commonHTTP.PostJSON(ctx, span, h.httpClient, apiURL, request, response)
}
-// QueryServersInRoomAtEvent implements RoomServerQueryAPI
+// QueryRoomVersionCapabilities implements RoomServerQueryAPI
func (h *httpRoomserverQueryAPI) QueryRoomVersionCapabilities(
ctx context.Context,
request *QueryRoomVersionCapabilitiesRequest,
diff --git a/roomserver/query/query.go b/roomserver/query/query.go
index 3ab12d60..e0f38588 100644
--- a/roomserver/query/query.go
+++ b/roomserver/query/query.go
@@ -808,14 +808,13 @@ func (r *RoomserverQueryAPI) QueryRoomVersionCapabilities(
request *api.QueryRoomVersionCapabilitiesRequest,
response *api.QueryRoomVersionCapabilitiesResponse,
) error {
- response.DefaultRoomVersion = string(version.DefaultRoomVersion())
- response.AvailableRoomVersions = make(map[string]string)
+ response.DefaultRoomVersion = version.DefaultRoomVersion()
+ response.AvailableRoomVersions = make(map[gomatrixserverlib.RoomVersion]string)
for v, desc := range version.SupportedRoomVersions() {
- sv := string(v)
if desc.Stable {
- response.AvailableRoomVersions[sv] = "stable"
+ response.AvailableRoomVersions[v] = "stable"
} else {
- response.AvailableRoomVersions[sv] = "unstable"
+ response.AvailableRoomVersions[v] = "unstable"
}
}
return nil
diff --git a/roomserver/storage/postgres/storage.go b/roomserver/storage/postgres/storage.go
index af6afe5c..9bb6de9d 100644
--- a/roomserver/storage/postgres/storage.go
+++ b/roomserver/storage/postgres/storage.go
@@ -155,7 +155,7 @@ func extractRoomVersionFromCreateEvent(event gomatrixserverlib.Event) (
}
// A room version was specified in the event content?
if createContent.RoomVersion != nil {
- roomVersion = *createContent.RoomVersion
+ roomVersion = gomatrixserverlib.RoomVersion(*createContent.RoomVersion)
}
return roomVersion, err
}
diff --git a/roomserver/storage/sqlite3/storage.go b/roomserver/storage/sqlite3/storage.go
index ea926ca6..ae09a88a 100644
--- a/roomserver/storage/sqlite3/storage.go
+++ b/roomserver/storage/sqlite3/storage.go
@@ -184,7 +184,7 @@ func extractRoomVersionFromCreateEvent(event gomatrixserverlib.Event) (
}
// A room version was specified in the event content?
if createContent.RoomVersion != nil {
- roomVersion = *createContent.RoomVersion
+ roomVersion = gomatrixserverlib.RoomVersion(*createContent.RoomVersion)
}
return roomVersion, err
}