Sha256: 9f425445c589987622976b5cb5b2f5291f8dcb4aea35fe80bdcba1516a5b2c0e

Contents?: true

Size: 1.77 KB

Versions: 10

Compression:

Stored size: 1.77 KB

Contents

module RocketChat
  module Messages
    #
    # Rocket.Chat Channel messages
    #
    class Channel < Room
      include ListSupport

      #
      # channels.join REST API
      # @param [String] room_id Rocket.Chat room id
      # @param [String] name Rocket.Chat room name (coming soon)
      # @return [Boolean]
      # @raise [HTTPError, StatusError]
      #
      def join(room_id: nil, name: nil)
        session.request_json(
          '/api/v1/channels.join',
          method: :post,
          body: room_params(room_id, name)
        )['success']
      end

      #
      # channels.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 }`
      # @param [Hash] query The query. `{ active: true, type: { '$in': ['name', 'general'] } }`
      # @return [Room[]]
      # @raise [HTTPError, StatusError]
      #
      def list(offset: nil, count: nil, sort: nil, fields: nil, query: nil)
        response = session.request_json(
          '/api/v1/channels.list',
          body: build_list_body(offset, count, sort, fields, query)
        )

        response['channels'].map { |hash| RocketChat::Room.new hash } if response['success']
      end

      # Keys for set_attr:
      # * [String] description A room's description
      # * [String] join_code Code to join a channel
      # * [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)
      def self.settable_attributes
        %i[description join_code purpose read_only topic type]
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
rocketchat-0.1.15 lib/rocket_chat/messages/channel.rb
rocketchat-0.1.14 lib/rocket_chat/messages/channel.rb
rocketchat-0.1.13 lib/rocket_chat/messages/channel.rb
rocketchat-0.1.12 lib/rocket_chat/messages/channel.rb
rocketchat-0.1.11 lib/rocket_chat/messages/channel.rb
rocketchat-0.1.10 lib/rocket_chat/messages/channel.rb
rocketchat-0.1.9 lib/rocket_chat/messages/channel.rb
rocketchat-0.1.8 lib/rocket_chat/messages/channel.rb
rocketchat-0.1.7 lib/rocket_chat/messages/channel.rb
rocketchat-0.1.6 lib/rocket_chat/messages/channel.rb