Add Client.get_room_by_id()

This commit is contained in:
Gergely Polonkai 2016-03-16 17:38:50 +01:00 committed by Gergely Polonkai
parent 9f236de0b9
commit c8f815c542
2 changed files with 26 additions and 0 deletions

View File

@ -193,4 +193,16 @@ public interface Matrix.Client : GLib.Object {
public abstract Presence public abstract Presence
get_user_presence(string user_id, string? room_id = null) get_user_presence(string user_id, string? room_id = null)
throws Matrix.Error; throws Matrix.Error;
/**
* Get a room object by the room ID specified in @param room_id.
* If room data is not cached yet, Matrix.Error.UNAVAILABLE is
* thrown.
*
* @param room_id the ID of a room
* @return a Matrix.Room object
*/
public abstract Room
get_room_by_id(string room_id)
throws Matrix.Error;
} }

View File

@ -439,4 +439,18 @@ public class Matrix.HTTPClient : Matrix.HTTPAPI, Matrix.Client {
throw new Matrix.Error.UNSUPPORTED( throw new Matrix.Error.UNSUPPORTED(
"Per-room presences are not supported yet."); "Per-room presences are not supported yet.");
} }
public Room
get_room_by_id(string room_id)
throws Matrix.Error
{
Room? room;
if ((room = _rooms[room_id]) == null) {
throw new Matrix.Error.UNAVAILABLE(
"Room data for %s is not cached yet.", room_id);
}
return room;
}
} }