try to implement At a bit deeper

This commit is contained in:
alam0rt 2021-11-06 13:43:43 +11:00
parent 887bb12b74
commit 1e0765e2c4
5 changed files with 11 additions and 10 deletions

View file

@ -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},

View file

@ -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)
}

View file

@ -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.

View file

@ -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)
}

View file

@ -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)