class RocketChat::Messages::Group

Rocket.Chat Group messages

Public Class Methods

settable_attributes() click to toggle source

Keys for set_attr:

  • String

    description A room's description

  • String

    purpose Alias for description

  • Boolean

    read_only Read-only status

  • String

    topic A room's topic

  • Strong

    type c (channel) or p (private group)

# File lib/rocket_chat/messages/group.rb, line 98
def self.settable_attributes
  %i[description purpose read_only topic type]
end

Public Instance Methods

add_leader(room_id: nil, name: nil, user_id: nil, username: nil) click to toggle source

*.add_leader REST API @param [String] room_id Rocket.Chat room id @param [String] leader Rocket.Chat user id @return [Boolean] @raise [HTTPError, StatusError]

# File lib/rocket_chat/messages/group.rb, line 18
def add_leader(room_id: nil, name: nil, user_id: nil, username: nil)
  session.request_json(
    self.class.api_path('addLeader'),
    method: :post,
    body: room_params(room_id, name)
      .merge(user_params(user_id, username))
  )['success']
end
list(offset: nil, count: nil, sort: nil, fields: nil, query: nil) click to toggle source

groups.list REST API @param [Integer] offset Query offset @param [Integer] count Query count/limit @param [Hash] sort Query field sort hash. eg `{ msgs: 1, name: -1 }` @param [Hash] fields Query fields to return. eg `{ name: 1, ro: 0 }` @return [Room @raise [HTTPError, StatusError]

# File lib/rocket_chat/messages/group.rb, line 51
def list(offset: nil, count: nil, sort: nil, fields: nil, query: nil)
  response = session.request_json(
    '/api/v1/groups.list',
    body: build_list_body(offset, count, sort, fields, query)
  )

  response['groups'].map { |hash| RocketChat::Room.new hash } if response['success']
end
list_all(offset: nil, count: nil, sort: nil, fields: nil, query: nil) click to toggle source

groups.listAll REST API @param [Integer] offset Query offset @param [Integer] count Query count/limit @param [Hash] sort Query field sort hash. eg `{ msgs: 1, name: -1 }` @param [Hash] fields Query fields to return. eg `{ name: 1, ro: 0 }` @return [Room @raise [HTTPError, StatusError]

# File lib/rocket_chat/messages/group.rb, line 68
def list_all(offset: nil, count: nil, sort: nil, fields: nil, query: nil)
  response = session.request_json(
    '/api/v1/groups.listAll',
    body: build_list_body(offset, count, sort, fields, query)
  )

  response['groups'].map { |hash| RocketChat::Room.new hash } if response['success']
end
online(room_id: nil, name: nil) click to toggle source

groups.online REST API @param [String] room_id Rocket.Chat room id @return [Users @raise [HTTPError, StatusError]

# File lib/rocket_chat/messages/group.rb, line 83
def online(room_id: nil, name: nil)
  response = session.request_json(
    '/api/v1/groups.online',
    body: room_params(room_id, name)
  )

  response['online'].map { |hash| RocketChat::User.new hash } if response['success']
end
remove_leader(room_id: nil, name: nil, user_id: nil, username: nil) click to toggle source

*.remove_leader REST API @param [String] room_id Rocket.Chat room id @param [String] leader Rocket.Chat user id @return [Boolean] @raise [HTTPError, StatusError]

# File lib/rocket_chat/messages/group.rb, line 34
def remove_leader(room_id: nil, name: nil, user_id: nil, username: nil)
  session.request_json(
    self.class.api_path('removeLeader'),
    method: :post,
    body: room_params(room_id, name)
      .merge(user_params(user_id, username))
  )['success']
end