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)
Constant Summary collapse
- API_PREFIX =
'/api/v1'
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.
- #upload_file(room_id:, file:, **rest_params) ⇒ RocketChat::Message
Methods included from UserSupport
Methods included from RoomSupport
#room_params, #room_query_params
Constructor Details
#initialize(session) ⇒ Room
Returns a new instance of Room.
26 27 28 |
# File 'lib/rocket_chat/messages/room.rb', line 26 def initialize(session) @session = session end |
Class Method Details
.api_path(method) ⇒ Object
Full API path to call
31 32 33 |
# File 'lib/rocket_chat/messages/room.rb', line 31 def self.api_path(method) "#{API_PREFIX}/#{collection}.#{method}" end |
.inherited(subclass) ⇒ Object
14 15 16 17 18 19 20 21 |
# File 'lib/rocket_chat/messages/room.rb', line 14 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
77 78 79 80 81 82 83 84 |
# File 'lib/rocket_chat/messages/room.rb', line 77 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
131 132 133 134 135 136 137 138 |
# File 'lib/rocket_chat/messages/room.rb', line 131 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
95 96 97 98 99 100 101 102 |
# File 'lib/rocket_chat/messages/room.rb', line 95 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
218 219 220 221 222 223 224 |
# File 'lib/rocket_chat/messages/room.rb', line 218 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
42 43 44 45 46 47 48 49 50 51 |
# File 'lib/rocket_chat/messages/room.rb', line 42 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
60 61 62 63 64 65 66 67 |
# File 'lib/rocket_chat/messages/room.rb', line 60 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
165 166 167 168 169 170 171 172 173 |
# File 'lib/rocket_chat/messages/room.rb', line 165 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
184 185 186 187 188 189 190 191 |
# File 'lib/rocket_chat/messages/room.rb', line 184 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
202 203 204 205 206 207 208 209 |
# File 'lib/rocket_chat/messages/room.rb', line 202 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
248 249 250 251 252 253 254 |
# File 'lib/rocket_chat/messages/room.rb', line 248 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
300 301 302 303 304 305 306 307 |
# File 'lib/rocket_chat/messages/room.rb', line 300 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
149 150 151 152 153 154 155 156 |
# File 'lib/rocket_chat/messages/room.rb', line 149 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
113 114 115 116 117 118 119 120 |
# File 'lib/rocket_chat/messages/room.rb', line 113 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
263 264 265 266 267 268 269 |
# File 'lib/rocket_chat/messages/room.rb', line 263 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
279 280 281 282 283 284 285 286 287 288 |
# File 'lib/rocket_chat/messages/room.rb', line 279 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
233 234 235 236 237 238 239 |
# File 'lib/rocket_chat/messages/room.rb', line 233 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 |
#upload_file(room_id:, file:, **rest_params) ⇒ RocketChat::Message
318 319 320 321 322 323 324 325 326 |
# File 'lib/rocket_chat/messages/room.rb', line 318 def upload_file(room_id:, file:, **rest_params) response = session.request_json( "#{API_PREFIX}/rooms.upload/#{room_id}", method: :post, form_data: file_upload_array(file: file, **rest_params) ) RocketChat::Message.new response['message'] if response['success'] end |