mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-28 09:13:09 -06:00
Update QueryMembershipsForRoom
This commit is contained in:
parent
7834682981
commit
078aa09a5c
|
|
@ -151,6 +151,10 @@ type QueryMembershipsForRoomRequest struct {
|
||||||
JoinedOnly bool `json:"joined_only"`
|
JoinedOnly bool `json:"joined_only"`
|
||||||
// ID of the room to fetch memberships from
|
// ID of the room to fetch memberships from
|
||||||
RoomID string `json:"room_id"`
|
RoomID string `json:"room_id"`
|
||||||
|
// Optional - ID of the user sending the request, for checking if the
|
||||||
|
// user is allowed to see the memberships. If not specified then all
|
||||||
|
// room memberships will be returned.
|
||||||
|
Sender string `json:"sender"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// QueryMembershipsForRoomResponse is a response to QueryMembershipsForRoom
|
// QueryMembershipsForRoomResponse is a response to QueryMembershipsForRoom
|
||||||
|
|
|
||||||
|
|
@ -243,6 +243,29 @@ func (r *Queryer) QueryMembershipsForRoom(
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if request.Sender == "" {
|
||||||
|
var events []types.Event
|
||||||
|
var eventNIDs []types.EventNID
|
||||||
|
eventNIDs, err = r.DB.GetMembershipEventNIDsForRoom(ctx, info.RoomNID, request.JoinedOnly, false)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("r.DB.GetMembershipEventNIDsForRoom: %w", err)
|
||||||
|
}
|
||||||
|
events, err = r.DB.Events(ctx, eventNIDs)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("r.DB.Events: %w", err)
|
||||||
|
}
|
||||||
|
for _, event := range events {
|
||||||
|
clientEvent := gomatrixserverlib.ToClientEvent(event.Event, gomatrixserverlib.FormatAll)
|
||||||
|
response.JoinEvents = append(response.JoinEvents, clientEvent)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
membershipEventNID, stillInRoom, isRoomforgotten, err := r.DB.GetMembership(ctx, info.RoomNID, request.Sender)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
response.IsRoomForgotten = isRoomforgotten
|
response.IsRoomForgotten = isRoomforgotten
|
||||||
|
|
||||||
if membershipEventNID == 0 {
|
if membershipEventNID == 0 {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue