ex_matrix_api v0.1.0 ExMatrixApi.Synapse

API level to make requests to Matrix Synapse.

Link to this section Summary

Functions

Read config settings.

Create new room for user's conversation.

Decline invite to join room.

Get authorization token by login / password.

Check if synapse allowing to register specific username.

Join room by accepting invite.

Register new user on Matrix synapse.

Get secure room id from it's alias.

Get list of messages in a specific room.

Get full room state.

Get list of room names.

Send new text message in a specific room.

Mark room events as read.

Get major user data in scope synapse.

Convert mxc URI into http URL for display.

Update specific field of user's data, currently supported only for display name and avatar.

Update display name, avatar or password.

Upload file and return mxc:// URI of the uploaded asset.

Link to this section Types

Specs

invites() :: %{
  required(String.t()) => ExMatrixApi.Synapse.Rooms.InviteState.t()
}

Specs

timelines() :: %{required(String.t()) => ExMatrixApi.Synapse.Rooms.Timeline.t()}

Link to this section Functions

Specs

config!(atom()) :: any()

Read config settings.

Link to this function

create_room(token, payload)

Specs

create_room(String.t(), map()) :: {:ok, String.t()} | {:error, any()}

Create new room for user's conversation.

Link to this function

forget_invited_room(token, room_uid)

Specs

forget_invited_room(String.t(), String.t()) :: :ok | {:error, any()}

Decline invite to join room.

Link to this function

get_token(user, password)

Specs

get_token(String.t(), String.t()) :: {:ok, String.t()} | {:error, any()}

Get authorization token by login / password.

Link to this function

is_username_available?(username)

Specs

is_username_available?(String.t()) :: {:ok, boolean()} | {:error, any()}

Check if synapse allowing to register specific username.

Link to this function

join_invited_room(token, room_uid)

Specs

join_invited_room(String.t(), String.t()) :: {:ok, String.t()} | {:error, any()}

Join room by accepting invite.

Link to this function

leave_room(token, room_uid)

Specs

leave_room(String.t(), String.t()) :: :ok | {:error, any()}

Leave room.

Link to this function

register(username, password, params \\ %{})

Specs

register(String.t(), String.t(), map()) ::
  {:ok, ExMatrixApi.Synapse.RegisteredUser.t()} | {:error, any()}

Register new user on Matrix synapse.

Link to this function

room_id_by_alias(token, room_alias)

Specs

room_id_by_alias(String.t(), String.t()) :: {:ok, String.t()} | {:error, any()}

Get secure room id from it's alias.

Link to this function

room_messages(token, room_id, from, limit \\ 20, dir \\ "b")

Specs

room_messages(Sring.t(), String.t(), String.t(), integer(), String.t()) ::
  {:ok, {[map()], String.t(), String.t()}} | {:error, any()}

Get list of messages in a specific room.

Link to this function

room_state(token, room_id)

Specs

room_state(String.t(), String.t()) ::
  {:ok, [ExMatrixApi.Synapse.Rooms.Event.t()]} | {:error, any()}

Get full room state.

Specs

rooms(String.t()) :: {:ok, [String.t()]} | {:error, any()}

Get list of room names.

Link to this function

send_text_message(token, room, text)

Specs

send_text_message(String.t(), String.t(), String.t()) ::
  {:ok, ExMatrixApi.Synapse.Rooms.Event.t()} | {:error, any()}

Send new text message in a specific room.

Link to this function

set_read_marker(token, room, to_event_id)

Specs

set_read_marker(String.t(), String.t(), String.t()) :: :ok | {:error, any()}

Mark room events as read.

Link to this function

sync(token, params \\ %{})

Specs

sync(String.t(), map()) :: {:ok, timelines(), invites()} | {:error, any()}

Get major user data in scope synapse.

Link to this function

thumbnail(arg1, width, height)

Specs

thumbnail(String.t(), integer(), integer()) :: String.t()

Convert mxc URI into http URL for display.

Link to this function

update_room_state(token, room_id, event_type, payload \\ %{}, state_key \\ "")

Specs

update_room_state(String.t(), String.t(), String.t(), map(), String.t()) ::
  {:ok, String.t()} | {:error, any()}

Change room state, by executing state event.

Link to this function

update_user(token, user_id, atom, new_name)

Specs

update_user(String.t(), String.t(), :name | :avatar, String.t()) ::
  :ok | {:error, any()}

Update specific field of user's data, currently supported only for display name and avatar.

Link to this function

update_user(token, atom, user_id, old_password, new_password)

Specs

update_user(String.t(), :password, String.t(), String.t(), String.t()) ::
  :ok | {:error, any()}

Update display name, avatar or password.

Link to this function

upload_media(token, content_type, bin, filename \\ nil)

Specs

upload_media(String.t(), String.t(), binary(), String.t() | nil) ::
  {:ok, String.t()} | {:error, any()}

Upload file and return mxc:// URI of the uploaded asset.