aboutsummaryrefslogtreecommitdiff
path: root/roomserver/internal
diff options
context:
space:
mode:
Diffstat (limited to 'roomserver/internal')
-rw-r--r--roomserver/internal/perform_publish.go20
-rw-r--r--roomserver/internal/query.go13
2 files changed, 33 insertions, 0 deletions
diff --git a/roomserver/internal/perform_publish.go b/roomserver/internal/perform_publish.go
new file mode 100644
index 00000000..d7863620
--- /dev/null
+++ b/roomserver/internal/perform_publish.go
@@ -0,0 +1,20 @@
+package internal
+
+import (
+ "context"
+
+ "github.com/matrix-org/dendrite/roomserver/api"
+)
+
+func (r *RoomserverInternalAPI) PerformPublish(
+ ctx context.Context,
+ req *api.PerformPublishRequest,
+ res *api.PerformPublishResponse,
+) {
+ err := r.DB.PublishRoom(ctx, req.RoomID, req.Visibility == "public")
+ if err != nil {
+ res.Error = &api.PerformError{
+ Msg: err.Error(),
+ }
+ }
+}
diff --git a/roomserver/internal/query.go b/roomserver/internal/query.go
index 19236bfb..7fa3247a 100644
--- a/roomserver/internal/query.go
+++ b/roomserver/internal/query.go
@@ -930,3 +930,16 @@ func (r *RoomserverInternalAPI) QueryRoomVersionForRoom(
r.Cache.StoreRoomVersion(request.RoomID, response.RoomVersion)
return nil
}
+
+func (r *RoomserverInternalAPI) QueryPublishedRooms(
+ ctx context.Context,
+ req *api.QueryPublishedRoomsRequest,
+ res *api.QueryPublishedRoomsResponse,
+) error {
+ rooms, err := r.DB.GetPublishedRooms(ctx)
+ if err != nil {
+ return err
+ }
+ res.RoomIDs = rooms
+ return nil
+}