mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-11 17:03:10 -06:00
Various fixes in the roomserver public room API
This commit is contained in:
parent
f23f386207
commit
93a50afaf5
|
|
@ -114,16 +114,18 @@ func (r *RoomserverPublicRoomAPI) GetPublicRooms(
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
rooms, err := r.DB.GetAliasesFromRoomIDs(roomIDs)
|
aliases, err := r.DB.GetAliasesFromRoomIDs(roomIDs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
var chunks []api.PublicRoomsChunk
|
chunks := []api.PublicRoomsChunk{}
|
||||||
for room, aliases := range rooms {
|
// Iterate over the array of aliases instead of the array of rooms, because
|
||||||
|
// a room must have at least one alias to be listed
|
||||||
|
for room, as := range aliases {
|
||||||
chunk := api.PublicRoomsChunk{
|
chunk := api.PublicRoomsChunk{
|
||||||
RoomID: room,
|
RoomID: room,
|
||||||
Aliases: aliases,
|
Aliases: as,
|
||||||
NumJoinedMembers: 0,
|
NumJoinedMembers: 0,
|
||||||
WorldReadable: true,
|
WorldReadable: true,
|
||||||
GuestCanJoin: true,
|
GuestCanJoin: true,
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,8 @@ package storage
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"database/sql"
|
"database/sql"
|
||||||
|
|
||||||
|
"github.com/lib/pq"
|
||||||
)
|
)
|
||||||
|
|
||||||
const roomAliasesSchema = `
|
const roomAliasesSchema = `
|
||||||
|
|
@ -101,7 +103,7 @@ func (s *roomAliasesStatements) selectAliasesFromRoomID(roomID string) (aliases
|
||||||
|
|
||||||
func (s *roomAliasesStatements) selectAliasesFromRoomIDs(roomIDs []string) (aliases map[string][]string, err error) {
|
func (s *roomAliasesStatements) selectAliasesFromRoomIDs(roomIDs []string) (aliases map[string][]string, err error) {
|
||||||
aliases = make(map[string][]string)
|
aliases = make(map[string][]string)
|
||||||
rows, err := s.selectAliasesFromRoomIDsStmt.Query(roomIDs)
|
rows, err := s.selectAliasesFromRoomIDsStmt.Query(pq.StringArray(roomIDs))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue