Class: RocketChat::Messages::Room

Inherits:
Object
  • Object
show all
Includes:
RoomSupport, UserSupport
Defined in:
lib/rocket_chat/messages/room.rb

Overview

Rocket.Chat Room messages template (groups&channels)

Direct Known Subclasses

Channel, Group

Class Method Summary collapse

Instance Method Summary collapse

Methods included from UserSupport

#user_params

Methods included from RoomSupport

#room_params

Constructor Details

#initialize(session) ⇒ Room

Returns a new instance of Room.

Parameters:



20
21
22
# File 'lib/rocket_chat/messages/room.rb', line 20

def initialize(session)
  @session = session
end

Class Method Details

.api_path(method) ⇒ Object

Full API path to call



25
26
27
# File 'lib/rocket_chat/messages/room.rb', line 25

def self.api_path(method)
  "/api/v1/#{collection}.#{method}"
end

.inherited(subclass) ⇒ Object



10
11
12
13
14
15
# File 'lib/rocket_chat/messages/room.rb', line 10

def self.inherited(subclass)
  field = subclass.name.split('::')[-1].downcase
  collection = field + 's'
  subclass.send(:define_singleton_method, :field) { field }
  subclass.send(:define_singleton_method, :collection) { collection }
end

Instance Method Details

#add_all(room_id: nil, name: nil, active_users_only: false) ⇒ Boolean

*.addAll REST API

Parameters:

  • room_id (String) (defaults to: nil)

    Rocket.Chat room id

  • name (String) (defaults to: nil)

    Rocket.Chat room name (coming soon)

  • active_users_only (String) (defaults to: false)

    Add active users only

Returns:

  • (Boolean)

Raises:



71
72
73
74
75
76
77
78
# File 'lib/rocket_chat/messages/room.rb', line 71

def add_all(room_id: nil, name: nil, active_users_only: false)
  session.request_json(
    self.class.api_path('addAll'),
    method: :post,
    body: room_params(room_id, name)
            .merge(activeUsersOnly: active_users_only)
  )['success']
end

#add_moderator(room_id: nil, name: nil, user_id: nil, username: nil) ⇒ Boolean

*.add_moderator REST API

Parameters:

  • room_id (String) (defaults to: nil)

    Rocket.Chat room id

  • name (String) (defaults to: nil)

    Rocket.Chat room name (coming soon)

  • user_id (String) (defaults to: nil)

    Rocket.Chat user id

  • username (String) (defaults to: nil)

    Rocket.Chat username

Returns:

  • (Boolean)

Raises:



125
126
127
128
129
130
131
132
# File 'lib/rocket_chat/messages/room.rb', line 125

def add_moderator(room_id: nil, name: nil, user_id: nil, username: nil)
  session.request_json(
    self.class.api_path('addModerator'),
    method: :post,
    body: room_params(room_id, name)
      .merge(user_params(user_id, username))
  )['success']
end

#add_owner(room_id: nil, name: nil, user_id: nil, username: nil) ⇒ Boolean

*.add_owner REST API

Parameters:

  • room_id (String) (defaults to: nil)

    Rocket.Chat room id

  • name (String) (defaults to: nil)

    Rocket.Chat room name (coming soon)

  • user_id (String) (defaults to: nil)

    Rocket.Chat user id

  • username (String) (defaults to: nil)

    Rocket.Chat username

Returns:

  • (Boolean)

Raises:



89
90
91
92
93
94
95
96
# File 'lib/rocket_chat/messages/room.rb', line 89

def add_owner(room_id: nil, name: nil, user_id: nil, username: nil)
  session.request_json(
    self.class.api_path('addOwner'),
    method: :post,
    body: room_params(room_id, name)
      .merge(user_params(user_id, username))
  )['success']
end

#archive(room_id: nil, name: nil) ⇒ Boolean

*.archive REST API

Parameters:

  • room_id (String) (defaults to: nil)

    Rocket.Chat room id

  • name (String) (defaults to: nil)

    Rocket.Chat room name (coming soon)

Returns:

  • (Boolean)

Raises:



212
213
214
215
216
217
218
# File 'lib/rocket_chat/messages/room.rb', line 212

def archive(room_id: nil, name: nil)
  session.request_json(
    self.class.api_path('archive'),
    method: :post,
    body: room_params(room_id, name)
  )['success']
end

#create(name, options = {}) ⇒ Room

*.create REST API

Parameters:

  • name (String)

    Room name

  • options (Hash) (defaults to: {})

    Additional options

Returns:

Raises:



36
37
38
39
40
41
42
43
44
45
# File 'lib/rocket_chat/messages/room.rb', line 36

def create(name, options = {})
  response = session.request_json(
    self.class.api_path('create'),
    method: :post,
    body: {
      name: name
    }.merge(room_option_hash(options))
  )
  RocketChat::Room.new response[self.class.field]
end

#delete(room_id: nil, name: nil) ⇒ Boolean

*.delete REST API

Parameters:

  • room_id (String) (defaults to: nil)

    Rocket.Chat room id

  • name (String) (defaults to: nil)

    Rocket.Chat room name (coming soon)

Returns:

  • (Boolean)

Raises:



54
55
56
57
58
59
60
61
# File 'lib/rocket_chat/messages/room.rb', line 54

def delete(room_id: nil, name: nil)
  session.request_json(
    self.class.api_path('delete'),
    method: :post,
    body: room_params(room_id, name),
    upstreamed_errors: ['error-room-not-found']
  )['success']
end

#info(room_id: nil, name: nil) ⇒ Room

*.info REST API

Parameters:

  • room_id (String) (defaults to: nil)

    Rocket.Chat room id

  • name (String) (defaults to: nil)

    Room name (channels since 0.56)

Returns:

Raises:



159
160
161
162
163
164
165
166
167
# File 'lib/rocket_chat/messages/room.rb', line 159

def info(room_id: nil, name: nil)
  response = session.request_json(
    self.class.api_path('info'),
    body: room_params(room_id, name),
    upstreamed_errors: ['error-room-not-found']
  )

  RocketChat::Room.new response[self.class.field] if response['success']
end

#invite(room_id: nil, name: nil, user_id: nil, username: nil) ⇒ Boolean

*.invite REST API

Parameters:

  • room_id (String) (defaults to: nil)

    Rocket.Chat room id

  • name (String) (defaults to: nil)

    Rocket.Chat room name (coming soon)

  • user_id (String) (defaults to: nil)

    Rocket.Chat user id

  • username (String) (defaults to: nil)

    Rocket.Chat username

Returns:

  • (Boolean)

Raises:



178
179
180
181
182
183
184
185
# File 'lib/rocket_chat/messages/room.rb', line 178

def invite(room_id: nil, name: nil, user_id: nil, username: nil)
  session.request_json(
    self.class.api_path('invite'),
    method: :post,
    body: room_params(room_id, name)
      .merge(user_params(user_id, username))
  )['success']
end

#kick(room_id: nil, name: nil, user_id: nil, username: nil) ⇒ Boolean

*.kick REST API

Parameters:

  • room_id (String) (defaults to: nil)

    Rocket.Chat room id

  • name (String) (defaults to: nil)

    Rocket.Chat room name (coming soon)

  • user_id (String) (defaults to: nil)

    Rocket.Chat user id

  • username (String) (defaults to: nil)

    Rocket.Chat username

Returns:

  • (Boolean)

Raises:



196
197
198
199
200
201
202
203
# File 'lib/rocket_chat/messages/room.rb', line 196

def kick(room_id: nil, name: nil, user_id: nil, username: nil)
  session.request_json(
    self.class.api_path('kick'),
    method: :post,
    body: room_params(room_id, name)
      .merge(user_params(user_id, username))
  )['success']
end

#leave(room_id: nil, name: nil) ⇒ Boolean

*.leave REST API

Parameters:

  • room_id (String) (defaults to: nil)

    Rocket.Chat room id

  • name (String) (defaults to: nil)

    Rocket.Chat room name (coming soon)

Returns:

  • (Boolean)

Raises:



242
243
244
245
246
247
248
# File 'lib/rocket_chat/messages/room.rb', line 242

def leave(room_id: nil, name: nil)
  session.request_json(
    self.class.api_path('leave'),
    method: :post,
    body: room_params(room_id, name)
  )['success']
end

#remove_moderator(room_id: nil, name: nil, user_id: nil, username: nil) ⇒ Boolean

*.remove_moderator REST API

Parameters:

  • room_id (String) (defaults to: nil)

    Rocket.Chat room id

  • name (String) (defaults to: nil)

    Rocket.Chat room name (coming soon)

  • user_id (String) (defaults to: nil)

    Rocket.Chat user id

  • username (String) (defaults to: nil)

    Rocket.Chat username

Returns:

  • (Boolean)

Raises:



143
144
145
146
147
148
149
150
# File 'lib/rocket_chat/messages/room.rb', line 143

def remove_moderator(room_id: nil, name: nil, user_id: nil, username: nil)
  session.request_json(
    self.class.api_path('removeModerator'),
    method: :post,
    body: room_params(room_id, name)
      .merge(user_params(user_id, username))
  )['success']
end

#remove_owner(room_id: nil, name: nil, user_id: nil, username: nil) ⇒ Boolean

*.remove_owner REST API

Parameters:

  • room_id (String) (defaults to: nil)

    Rocket.Chat room id

  • name (String) (defaults to: nil)

    Rocket.Chat room name (coming soon)

  • user_id (String) (defaults to: nil)

    Rocket.Chat user id

  • username (String) (defaults to: nil)

    Rocket.Chat username

Returns:

  • (Boolean)

Raises:



107
108
109
110
111
112
113
114
# File 'lib/rocket_chat/messages/room.rb', line 107

def remove_owner(room_id: nil, name: nil, user_id: nil, username: nil)
  session.request_json(
    self.class.api_path('removeOwner'),
    method: :post,
    body: room_params(room_id, name)
      .merge(user_params(user_id, username))
  )['success']
end

#rename(room_id, new_name) ⇒ Boolean

*.rename REST API

Parameters:

  • room_id (String)

    Rocket.Chat room id

  • new_name (String)

    New room name

Returns:

  • (Boolean)

Raises:



257
258
259
260
261
262
263
# File 'lib/rocket_chat/messages/room.rb', line 257

def rename(room_id, new_name)
  session.request_json(
    self.class.api_path('rename'),
    method: :post,
    body: { roomId: room_id, name: new_name }
  )['success']
end

#set_attr(room_id: nil, name: nil, **setting) ⇒ Boolean

.set REST API

Parameters:

  • room_id (String) (defaults to: nil)

    Rocket.Chat room id

  • name (String) (defaults to: nil)

    Rocket.Chat room name (coming soon)

  • setting (Hash)

    Single key-value

Returns:

  • (Boolean)

Raises:



273
274
275
276
277
278
279
280
281
282
# File 'lib/rocket_chat/messages/room.rb', line 273

def set_attr(room_id: nil, name: nil, **setting)
  attribute, value = setting.first
  validate_attribute(attribute)
  session.request_json(
    self.class.api_path(Util.camelize("set_#{attribute}")),
    method: :post,
    body: room_params(room_id, name)
      .merge(Util.camelize(attribute) => value)
  )['success']
end

#unarchive(room_id: nil, name: nil) ⇒ Boolean

*.unarchive REST API

Parameters:

  • room_id (String) (defaults to: nil)

    Rocket.Chat room id

  • name (String) (defaults to: nil)

    Rocket.Chat room name (coming soon)

Returns:

  • (Boolean)

Raises:



227
228
229
230
231
232
233
# File 'lib/rocket_chat/messages/room.rb', line 227

def unarchive(room_id: nil, name: nil)
  session.request_json(
    self.class.api_path('unarchive'),
    method: :post,
    body: room_params(room_id, name)
  )['success']
end