Class: RocketChat::Messages::Room
- Inherits:
-
Object
- Object
- RocketChat::Messages::Room
- Includes:
- RoomSupport, UserSupport
- Defined in:
- lib/rocket_chat/messages/room.rb
Overview
Rocket.Chat Room messages template (groups&channels)
Class Method Summary collapse
-
.api_path(method) ⇒ Object
Full API path to call.
- .inherited(subclass) ⇒ Object
Instance Method Summary collapse
-
#add_all(room_id: nil, name: nil, active_users_only: false) ⇒ Boolean
*.addAll REST API.
-
#add_moderator(room_id: nil, name: nil, user_id: nil, username: nil) ⇒ Boolean
*.add_moderator REST API.
-
#add_owner(room_id: nil, name: nil, user_id: nil, username: nil) ⇒ Boolean
*.add_owner REST API.
-
#archive(room_id: nil, name: nil) ⇒ Boolean
*.archive REST API.
-
#create(name, options = {}) ⇒ Room
*.create REST API.
-
#delete(room_id: nil, name: nil) ⇒ Boolean
*.delete REST API.
-
#info(room_id: nil, name: nil) ⇒ Room
*.info REST API.
-
#initialize(session) ⇒ Room
constructor
A new instance of Room.
-
#invite(room_id: nil, name: nil, user_id: nil, username: nil) ⇒ Boolean
*.invite REST API.
-
#kick(room_id: nil, name: nil, user_id: nil, username: nil) ⇒ Boolean
*.kick REST API.
-
#leave(room_id: nil, name: nil) ⇒ Boolean
*.leave REST API.
-
#members(room_id: nil, name: nil, offset: nil, count: nil, sort: nil) ⇒ Users[]
.members REST API.
-
#remove_moderator(room_id: nil, name: nil, user_id: nil, username: nil) ⇒ Boolean
*.remove_moderator REST API.
-
#remove_owner(room_id: nil, name: nil, user_id: nil, username: nil) ⇒ Boolean
*.remove_owner REST API.
-
#rename(room_id, new_name) ⇒ Boolean
*.rename REST API.
-
#set_attr(room_id: nil, name: nil, **setting) ⇒ Boolean
.set REST API.
-
#unarchive(room_id: nil, name: nil) ⇒ Boolean
*.unarchive REST API.
Methods included from UserSupport
Methods included from RoomSupport
#room_params, #room_query_params
Constructor Details
#initialize(session) ⇒ Room
Returns a new instance of Room.
24 25 26 |
# File 'lib/rocket_chat/messages/room.rb', line 24 def initialize(session) @session = session end |
Class Method Details
.api_path(method) ⇒ Object
Full API path to call
29 30 31 |
# File 'lib/rocket_chat/messages/room.rb', line 29 def self.api_path(method) "/api/v1/#{collection}.#{method}" end |
.inherited(subclass) ⇒ Object
12 13 14 15 16 17 18 19 |
# File 'lib/rocket_chat/messages/room.rb', line 12 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 } super end |
Instance Method Details
#add_all(room_id: nil, name: nil, active_users_only: false) ⇒ Boolean
*.addAll REST API
75 76 77 78 79 80 81 82 |
# File 'lib/rocket_chat/messages/room.rb', line 75 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
129 130 131 132 133 134 135 136 |
# File 'lib/rocket_chat/messages/room.rb', line 129 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
93 94 95 96 97 98 99 100 |
# File 'lib/rocket_chat/messages/room.rb', line 93 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
216 217 218 219 220 221 222 |
# File 'lib/rocket_chat/messages/room.rb', line 216 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
40 41 42 43 44 45 46 47 48 49 |
# File 'lib/rocket_chat/messages/room.rb', line 40 def create(name, = {}) response = session.request_json( self.class.api_path('create'), method: :post, body: { name: name }.merge(room_option_hash()) ) RocketChat::Room.new response[self.class.field] end |
#delete(room_id: nil, name: nil) ⇒ Boolean
*.delete REST API
58 59 60 61 62 63 64 65 |
# File 'lib/rocket_chat/messages/room.rb', line 58 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
163 164 165 166 167 168 169 170 171 |
# File 'lib/rocket_chat/messages/room.rb', line 163 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
182 183 184 185 186 187 188 189 |
# File 'lib/rocket_chat/messages/room.rb', line 182 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
200 201 202 203 204 205 206 207 |
# File 'lib/rocket_chat/messages/room.rb', line 200 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
246 247 248 249 250 251 252 |
# File 'lib/rocket_chat/messages/room.rb', line 246 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 |
#members(room_id: nil, name: nil, offset: nil, count: nil, sort: nil) ⇒ Users[]
.members REST API
298 299 300 301 302 303 304 305 |
# File 'lib/rocket_chat/messages/room.rb', line 298 def members(room_id: nil, name: nil, offset: nil, count: nil, sort: nil) response = session.request_json( self.class.api_path('members'), body: room_params(room_id, name).merge(build_list_body(offset, count, sort, nil, nil)) ) response['members'].map { |hash| RocketChat::User.new hash } if response['success'] end |
#remove_moderator(room_id: nil, name: nil, user_id: nil, username: nil) ⇒ Boolean
*.remove_moderator REST API
147 148 149 150 151 152 153 154 |
# File 'lib/rocket_chat/messages/room.rb', line 147 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
111 112 113 114 115 116 117 118 |
# File 'lib/rocket_chat/messages/room.rb', line 111 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
261 262 263 264 265 266 267 |
# File 'lib/rocket_chat/messages/room.rb', line 261 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
277 278 279 280 281 282 283 284 285 286 |
# File 'lib/rocket_chat/messages/room.rb', line 277 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
231 232 233 234 235 236 237 |
# File 'lib/rocket_chat/messages/room.rb', line 231 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 |