aboutsummaryrefslogtreecommitdiff
path: root/roomserver/api/query.go
diff options
context:
space:
mode:
Diffstat (limited to 'roomserver/api/query.go')
-rw-r--r--roomserver/api/query.go20
1 files changed, 20 insertions, 0 deletions
diff --git a/roomserver/api/query.go b/roomserver/api/query.go
index 1726bfe1..b33698c8 100644
--- a/roomserver/api/query.go
+++ b/roomserver/api/query.go
@@ -17,6 +17,7 @@
package api
import (
+ "context"
"encoding/json"
"fmt"
"strings"
@@ -457,3 +458,22 @@ type QueryLeftUsersRequest struct {
type QueryLeftUsersResponse struct {
LeftUsers []string `json:"user_ids"`
}
+
+type MembershipQuerier struct {
+ Roomserver FederationRoomserverAPI
+}
+
+func (mq *MembershipQuerier) CurrentMembership(ctx context.Context, roomID spec.RoomID, userID spec.UserID) (string, error) {
+ req := QueryMembershipForUserRequest{
+ RoomID: roomID.String(),
+ UserID: userID.String(),
+ }
+ res := QueryMembershipForUserResponse{}
+ err := mq.Roomserver.QueryMembershipForUser(ctx, &req, &res)
+
+ membership := ""
+ if err == nil {
+ membership = res.Membership
+ }
+ return membership, err
+}