try hacking around some more

This commit is contained in:
alam0rt 2021-11-06 15:44:55 +11:00
parent 1e0765e2c4
commit 09480c138a
6 changed files with 37 additions and 6 deletions

View file

@ -67,7 +67,7 @@ func IsServerCurrentlyInRoom(ctx context.Context, db storage.Database, serverNam
return db.GetLocalServerInRoom(ctx, info.RoomNID)
}
eventNIDs, err := db.GetMembershipEventNIDsForRoom(ctx, info.RoomNID, true, false)
eventNIDs, err := db.GetMembershipEventNIDsForRoom(ctx, info.RoomNID, "", true, false)
if err != nil {
return false, err
}

View file

@ -256,7 +256,7 @@ func (r *Inputer) calculateAndSetState(
stateAtEvent.Overwrite = true
var joinEventNIDs []types.EventNID
// Request join memberships only for local users only.
if joinEventNIDs, err = r.DB.GetMembershipEventNIDsForRoom(ctx, roomInfo.RoomNID, true, true); err == nil {
if joinEventNIDs, err = r.DB.GetMembershipEventNIDsForRoom(ctx, roomInfo.RoomNID, "", true, true); err == nil {
// If we have no local users that are joined to the room then any state about
// the room that we have is quite possibly out of date. Therefore in that case
// we should overwrite it rather than merge it.

View file

@ -537,7 +537,7 @@ func joinEventsFromHistoryVisibility(
if err != nil {
return nil, err
}
joinEventNIDs, err := db.GetMembershipEventNIDsForRoom(ctx, info.RoomNID, true, false)
joinEventNIDs, err := db.GetMembershipEventNIDsForRoom(ctx, info.RoomNID, "", true, false)
if err != nil {
return nil, err
}

View file

@ -287,7 +287,7 @@ func (r *Queryer) QueryMembershipsForRoom(
var stateEntries []types.StateEntry
if stillInRoom {
var eventNIDs []types.EventNID
eventNIDs, err = r.DB.GetMembershipEventNIDsForRoom(ctx, info.RoomNID, request.JoinedOnly, false)
eventNIDs, err = r.DB.GetMembershipEventNIDsForRoom(ctx, info.RoomNID, "", request.JoinedOnly, false)
if err != nil {
return err
}

View file

@ -6,6 +6,7 @@ import (
"encoding/json"
"fmt"
"sort"
"strconv"
"github.com/matrix-org/dendrite/internal/caching"
"github.com/matrix-org/dendrite/internal/sqlutil"
@ -359,7 +360,38 @@ func (d *Database) GetMembershipEventNIDsForRoom(
}
if len(requestAt) > 0 {
panic("implement me")
var eventNIDs []types.EventNID
var eventNIDsAt []types.EventNID
var err error
var depth int
depth, err = strconv.Atoi(string(requestAt[1]))
if err != nil {
return nil, err
}
fmt.Printf("XXXXXX %d XXXXXX", depth)
eventNIDs, err = d.MembershipTable.SelectMembershipsFromRoom(ctx, roomNID, localOnly)
if err != nil {
return nil, err
}
var eventNIDString []string
for _, nid := range eventNIDs {
eventNIDString = append(eventNIDString, fmt.Sprint(nid))
}
events, err := d.EventsFromIDs(ctx, eventNIDString)
if err != nil {
return nil, err
}
for _, ev := range events {
fmt.Println(ev)
if ev.Depth() <= int64(depth) {
eventNIDsAt = append(eventNIDsAt, ev.EventNID)
}
}
return eventNIDsAt, nil
}
return d.MembershipTable.SelectMembershipsFromRoom(ctx, roomNID, localOnly)

View file

@ -128,7 +128,6 @@ 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)