Class: LiveKit::RoomServiceClient

Inherits:
Twirp::Client
  • Object
show all
Includes:
AuthMixin
Defined in:
lib/livekit/room_service_client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from AuthMixin

#auth_header

Constructor Details

#initialize(base_url, api_key: nil, api_secret: nil) ⇒ RoomServiceClient

Returns a new instance of RoomServiceClient.



10
11
12
13
14
# File 'lib/livekit/room_service_client.rb', line 10

def initialize(base_url, api_key: nil, api_secret: nil)
  super(File.join(base_url, "/twirp"))
  @api_key = api_key
  @api_secret = api_secret
end

Instance Attribute Details

#api_keyObject

Returns the value of attribute api_key.



8
9
10
# File 'lib/livekit/room_service_client.rb', line 8

def api_key
  @api_key
end

#api_secretObject

Returns the value of attribute api_secret.



8
9
10
# File 'lib/livekit/room_service_client.rb', line 8

def api_secret
  @api_secret
end

Instance Method Details

#create_room(name, empty_timeout: nil, max_participants: nil) ⇒ Object



16
17
18
19
20
21
22
# File 'lib/livekit/room_service_client.rb', line 16

def create_room(name, empty_timeout: nil, max_participants: nil)
  self.rpc(
    :CreateRoom,
    Proto::CreateRoomRequest.new(name: name, empty_timeout: empty_timeout, max_participants: max_participants),
    headers: auth_header(roomCreate: true),
  )
end

#delete_room(room:) ⇒ Object



32
33
34
35
36
37
38
# File 'lib/livekit/room_service_client.rb', line 32

def delete_room(room:)
  self.rpc(
    :DeleteRoom,
    Proto::DeleteRoomRequest.new(room: room),
    headers: auth_header(roomCreate: true),
  )
end

#get_participant(room:, identity:) ⇒ Object



56
57
58
59
60
61
62
# File 'lib/livekit/room_service_client.rb', line 56

def get_participant(room:, identity:)
  self.rpc(
    :GetParticipant,
    Proto::RoomParticipantIdentity.new(room: room, identity: identity),
    headers: auth_header(roomAdmin: true, room: room),
  )
end

#list_participants(room:) ⇒ Object



48
49
50
51
52
53
54
# File 'lib/livekit/room_service_client.rb', line 48

def list_participants(room:)
  self.rpc(
    :ListParticipants,
    Proto::ListParticipantsRequest.new(room: room),
    headers: auth_header(roomAdmin: true, room: room),
  )
end

#list_rooms(names: nil) ⇒ Object



24
25
26
27
28
29
30
# File 'lib/livekit/room_service_client.rb', line 24

def list_rooms(names: nil)
  self.rpc(
    :ListRooms,
    Proto::ListRoomsRequest.new(names: names),
    headers: auth_header(roomList: true),
  )
end

#mute_published_track(room:, identity:, track_sid:, muted:) ⇒ Object



72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/livekit/room_service_client.rb', line 72

def mute_published_track(room:, identity:, track_sid:, muted:)
  self.rpc(
    :MutePublishedTrack,
    Proto::MuteRoomTrackRequest.new(
      room: room,
      identity: identity,
      track_sid: track_sid,
      muted: muted,
    ),
    headers: auth_header(roomAdmin: true, room: room),
  )
end

#remove_participant(room:, identity:) ⇒ Object



64
65
66
67
68
69
70
# File 'lib/livekit/room_service_client.rb', line 64

def remove_participant(room:, identity:)
  self.rpc(
    :RemoveParticipant,
    Proto::RoomParticipantIdentity.new(room: room, identity: identity),
    headers: auth_header(roomAdmin: true, room: room),
  )
end

#send_data(room:, data:, kind:, destination_sids: []) ⇒ Object



113
114
115
116
117
118
119
120
121
122
123
124
# File 'lib/livekit/room_service_client.rb', line 113

def send_data(room:, data:, kind:, destination_sids: [])
  self.rpc(
    :SendData,
    Proto::SendDataRequest.new(
      room: room,
      data: data,
      kind: kind,
      destination_sids: destination_sids,
    ),
    headers: auth_header(roomAdmin: true, room: room),
  )
end

#update_participant(room:, identity:, metadata: nil, permission: nil) ⇒ Object



85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/livekit/room_service_client.rb', line 85

def update_participant(room:, identity:, metadata: nil, permission: nil)
  req = Proto::UpdateParticipantRequest.new(room: room, identity: identity)
  if 
    req. = 
  end
  if permission
    req.permission = permission
  end
  self.rpc(
    :UpdateParticipant,
    req,
    headers: auth_header(roomAdmin: true, room: room),
  )
end

#update_room_metadata(room:, metadata:) ⇒ Object



40
41
42
43
44
45
46
# File 'lib/livekit/room_service_client.rb', line 40

def (room:, metadata:)
  self.rpc(
    :UpdateRoomMetadata,
    Proto::UpdateRoomMetadataRequest.new(room: room, metadata: ),
    headers: auth_header(roomAdmin: true, room: room),
  )
end

#update_subscriptions(room:, identity:, track_sids:, subscribe:) ⇒ Object



100
101
102
103
104
105
106
107
108
109
110
111
# File 'lib/livekit/room_service_client.rb', line 100

def update_subscriptions(room:, identity:, track_sids:, subscribe:)
  self.rpc(
    :UpdateSubscriptions,
    Proto::UpdateSubscriptionsRequest.new(
      room: room,
      identity: identity,
      track_sids: track_sids,
      subscribe: subscribe,
    ),
    headers: auth_header(roomAdmin: true, room: room),
  )
end