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

View file

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