Various fixes in the roomserver public room API

This commit is contained in:
Brendan Abolivier 2017-08-09 13:56:40 +01:00
parent f23f386207
commit 93a50afaf5
No known key found for this signature in database
GPG key ID: 8EF1500759F70623
2 changed files with 9 additions and 5 deletions

View file

@ -114,16 +114,18 @@ func (r *RoomserverPublicRoomAPI) GetPublicRooms(
return err
}
rooms, err := r.DB.GetAliasesFromRoomIDs(roomIDs)
aliases, err := r.DB.GetAliasesFromRoomIDs(roomIDs)
if err != nil {
return err
}
var chunks []api.PublicRoomsChunk
for room, aliases := range rooms {
chunks := []api.PublicRoomsChunk{}
// 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{
RoomID: room,
Aliases: aliases,
Aliases: as,
NumJoinedMembers: 0,
WorldReadable: true,
GuestCanJoin: true,

View file

@ -16,6 +16,8 @@ package storage
import (
"database/sql"
"github.com/lib/pq"
)
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) {
aliases = make(map[string][]string)
rows, err := s.selectAliasesFromRoomIDsStmt.Query(roomIDs)
rows, err := s.selectAliasesFromRoomIDsStmt.Query(pq.StringArray(roomIDs))
if err != nil {
return
}