Method: MatrixSdk::Client#find_room

Defined in:
lib/matrix_sdk/client.rb

#find_room(room_id_or_alias, only_canonical: false) ⇒ Object

Raises:

  • (ArgumentError)


214
215
216
217
218
219
220
221
222
223
# File 'lib/matrix_sdk/client.rb', line 214

def find_room(room_id_or_alias, only_canonical: false)
  room_id_or_alias = MXID.new(room_id_or_alias.to_s) unless room_id_or_alias.is_a? MXID
  raise ArgumentError, 'Must be a room id or alias' unless i[room_id room_alias].include? room_id_or_alias.type

  return @rooms.fetch(room_id_or_alias.to_s, nil) if room_id_or_alias.room_id?

  return @rooms.values.find { |r| r.canonical_alias == room_id_or_alias.to_s } if only_canonical

  @rooms.values.find { |r| r.aliases.include? room_id_or_alias.to_s }
end