mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-29 01:33:10 -06:00
try to implement At a bit deeper
This commit is contained in:
parent
887bb12b74
commit
1e0765e2c4
|
|
@ -63,6 +63,7 @@ func GetMemberships(
|
|||
Sender: device.UserID,
|
||||
At: at,
|
||||
}
|
||||
|
||||
var queryRes api.QueryMembershipsForRoomResponse
|
||||
if err := rsAPI.QueryMembershipsForRoom(req.Context(), &queryReq, &queryRes); err != nil {
|
||||
util.GetLogger(req.Context()).WithError(err).Error("rsAPI.QueryMembershipsForRoom failed")
|
||||
|
|
@ -81,10 +82,12 @@ func GetMemberships(
|
|||
res.Joined = make(map[string]joinedMember)
|
||||
for _, ev := range queryRes.JoinEvents {
|
||||
var content databaseJoinedMember
|
||||
|
||||
if err := json.Unmarshal(ev.Content, &content); err != nil {
|
||||
util.GetLogger(req.Context()).WithError(err).Error("failed to unmarshal event content")
|
||||
return jsonerror.InternalServerError()
|
||||
}
|
||||
|
||||
res.Joined[ev.Sender] = joinedMember(content)
|
||||
}
|
||||
return util.JSONResponse{
|
||||
|
|
@ -93,13 +96,6 @@ func GetMemberships(
|
|||
}
|
||||
}
|
||||
|
||||
util.GetLogger(req.Context()).Info("SLOCKART")
|
||||
for _, ev := range queryRes.JoinEvents {
|
||||
util.GetLogger(req.Context()).Info(ev)
|
||||
util.GetLogger(req.Context()).Info(at)
|
||||
}
|
||||
util.GetLogger(req.Context()).Error("SLOCKART")
|
||||
|
||||
return util.JSONResponse{
|
||||
Code: http.StatusOK,
|
||||
JSON: getMembershipResponse{queryRes.JoinEvents},
|
||||
|
|
|
|||
|
|
@ -252,7 +252,7 @@ func (r *Queryer) QueryMembershipsForRoom(
|
|||
if request.Sender == "" {
|
||||
var events []types.Event
|
||||
var eventNIDs []types.EventNID
|
||||
eventNIDs, err = r.DB.GetMembershipEventNIDsForRoom(ctx, info.RoomNID, request.JoinedOnly, false)
|
||||
eventNIDs, err = r.DB.GetMembershipEventNIDsForRoom(ctx, info.RoomNID, request.At, request.JoinedOnly, false)
|
||||
if err != nil {
|
||||
return fmt.Errorf("r.DB.GetMembershipEventNIDsForRoom: %w", err)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -131,7 +131,7 @@ type Database interface {
|
|||
// been members of a given room. Only lookup events of "join" membership if
|
||||
// joinOnly is set to true.
|
||||
// Returns an error if there was a problem talking to the database.
|
||||
GetMembershipEventNIDsForRoom(ctx context.Context, roomNID types.RoomNID, joinOnly bool, localOnly bool) ([]types.EventNID, error)
|
||||
GetMembershipEventNIDsForRoom(ctx context.Context, roomNID types.RoomNID, requestAt string, joinOnly bool, localOnly bool) ([]types.EventNID, error)
|
||||
// EventsFromIDs looks up the Events for a list of event IDs. Does not error if event was
|
||||
// not found.
|
||||
// Returns an error if the retrieval went wrong.
|
||||
|
|
|
|||
|
|
@ -350,7 +350,7 @@ func (d *Database) GetMembership(ctx context.Context, roomNID types.RoomNID, req
|
|||
}
|
||||
|
||||
func (d *Database) GetMembershipEventNIDsForRoom(
|
||||
ctx context.Context, roomNID types.RoomNID, joinOnly bool, localOnly bool,
|
||||
ctx context.Context, roomNID types.RoomNID, requestAt string, joinOnly bool, localOnly bool,
|
||||
) ([]types.EventNID, error) {
|
||||
if joinOnly {
|
||||
return d.MembershipTable.SelectMembershipsFromRoomAndMembership(
|
||||
|
|
@ -358,6 +358,10 @@ func (d *Database) GetMembershipEventNIDsForRoom(
|
|||
)
|
||||
}
|
||||
|
||||
if len(requestAt) > 0 {
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
return d.MembershipTable.SelectMembershipsFromRoom(ctx, roomNID, localOnly)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -128,6 +128,7 @@ type Membership interface {
|
|||
SelectMembershipForUpdate(ctx context.Context, txn *sql.Tx, roomNID types.RoomNID, targetUserNID types.EventStateKeyNID) (MembershipState, error)
|
||||
SelectMembershipFromRoomAndTarget(ctx context.Context, roomNID types.RoomNID, targetUserNID types.EventStateKeyNID) (types.EventNID, MembershipState, bool, error)
|
||||
SelectMembershipsFromRoom(ctx context.Context, roomNID types.RoomNID, localOnly bool) (eventNIDs []types.EventNID, err error)
|
||||
SelectMembershipsFromRoomPaginated(ctx context.Context, roomNID types.RoomNID, localOnly bool) (eventNIDs []types.EventNID, err error)
|
||||
SelectMembershipsFromRoomAndMembership(ctx context.Context, roomNID types.RoomNID, membership MembershipState, localOnly bool) (eventNIDs []types.EventNID, err error)
|
||||
UpdateMembership(ctx context.Context, txn *sql.Tx, roomNID types.RoomNID, targetUserNID types.EventStateKeyNID, senderUserNID types.EventStateKeyNID, membership MembershipState, eventNID types.EventNID, forgotten bool) error
|
||||
SelectRoomsWithMembership(ctx context.Context, userID types.EventStateKeyNID, membershipState MembershipState) ([]types.RoomNID, error)
|
||||
|
|
|
|||
Loading…
Reference in a new issue