Livekitex.RoomServiceBehaviour behaviour (livekitex v0.1.0)

Behaviour for Livekitex.RoomService.

Summary

Callbacks

create(api_key, api_secret, options)

@callback create(api_key :: String.t(), api_secret :: String.t(), options :: Keyword.t()) ::
  Livekitex.RoomService.t()

create_room(room_service, name, options)

@callback create_room(
  room_service :: Livekitex.RoomService.t(),
  name :: String.t(),
  options :: Keyword.t()
) :: {:ok, Livekitex.Room.t()} | {:error, any()}

delete_room(room_service, room_name)

@callback delete_room(room_service :: Livekitex.RoomService.t(), room_name :: String.t()) ::
  :ok | {:error, any()}

list_participants(room_service, room_name)

@callback list_participants(
  room_service :: Livekitex.RoomService.t(),
  room_name :: String.t()
) ::
  {:ok, [Livekitex.Participant.t()]} | {:error, any()}

list_rooms(room_service, options)

@callback list_rooms(room_service :: Livekitex.RoomService.t(), options :: Keyword.t()) ::
  {:ok, [Livekitex.Room.t()]} | {:error, any()}

mute_published_track(room_service, room_name, identity, track_sid, muted)

@callback mute_published_track(
  room_service :: Livekitex.RoomService.t(),
  room_name :: String.t(),
  identity :: String.t(),
  track_sid :: String.t(),
  muted :: boolean()
) :: {:ok, Livekitex.Track.t()} | {:error, any()}

remove_participant(room_service, room_name, identity)

@callback remove_participant(
  room_service :: Livekitex.RoomService.t(),
  room_name :: String.t(),
  identity :: String.t()
) :: :ok | {:error, any()}