4c1e6597c0
* Use content_value instead of membership * Fix build * Replace publicroomsapi with a combination of clientapi/roomserver/currentstateserver - All public rooms paths are now handled by clientapi - Requests to (un)publish rooms are sent to the roomserver via `PerformPublish` which are stored in a new `published_table.go` - Requests for public rooms are handled in clientapi by: * Fetch all room IDs which are published using `QueryPublishedRooms` on the roomserver. * Apply pagination parameters to the slice. * Do a `QueryBulkStateContent` request to the currentstateserver to pull out required state event *content* (not entire events). * Aggregate and return the chunk. Mostly but not fully implemented (DB queries on currentstateserver are missing) * Fix pq query * Make postgres work * Make sqlite work * Fix tests * Unbreak pagination tests * Linting
20 lines
382 B
Go
20 lines
382 B
Go
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(),
|
|
}
|
|
}
|
|
}
|