class HipChat::ApiVersion::Room

Attributes

base_uri[R]
headers[R]
room_id[R]
version[R]

Public Class Methods

new(options = {}) click to toggle source
# File lib/hipchat/api_version.rb, line 90
def initialize(options = {})
  @version = options[:api_version]
  options[:room_id] ||= options[get_id_attribute]
  @room_id = options[:room_id]
  if @version.eql?('v1')
    @base_uri = "#{options[:server_url]}/v1/rooms"
    @headers = {'Accept' => 'application/json',
       'Content-Type' => 'application/x-www-form-urlencoded'}
  else
    @base_uri = "#{options[:server_url]}/v2/room"
    @headers = {'Accept' => 'application/json',
       'Content-Type' => 'application/json'}
  end
end

Public Instance Methods

add_member_config() click to toggle source
# File lib/hipchat/api_version.rb, line 158
def add_member_config
  {
    'v2' => {
      :url => URI::escape("/#{room_id}/member"),
      :body_format => :to_json
    }
  }[version]
end
delete_room_config() click to toggle source
# File lib/hipchat/api_version.rb, line 134
def delete_room_config
  {
    'v1' => {
      :url => URI::escape("/delete"),
      :method => :post,
      :query_params => { :room_id => room_id }
    },
    'v2' => {
      :url => URI::escape("/#{room_id}"),
      :method => :delete,
      :query_params => {}
    }
  }[version]
end
get_id_attribute() click to toggle source
# File lib/hipchat/api_version.rb, line 107
def get_id_attribute
  version.eql?('v1') ? 'room_id' : 'id'
end
get_room_config() click to toggle source
# File lib/hipchat/api_version.rb, line 111
def get_room_config
  {
    'v1' => {
      :url => URI::escape('/show'),
      :query_params => { :room_id => room_id }
  },
    'v2' => {
      :url => URI::escape("/#{room_id}"),
      :query_params => { }
    }
  }[version]
end
history_config() click to toggle source
# File lib/hipchat/api_version.rb, line 222
def history_config
  {
    'v1' => {
      :url => '/history'
    },
    'v2' => {
      :url => URI::escape("/#{room_id}/history")
    }
  }[version]
end
invite_config() click to toggle source
# File lib/hipchat/api_version.rb, line 149
def invite_config
  {
    'v2' => {
      :url => URI::escape("/#{room_id}/invite"),
      :body_format => :to_json
    }
  }[version]
end
send_config() click to toggle source
# File lib/hipchat/api_version.rb, line 176
def send_config
  {
    'v1' => {
      :url => "/message",
      :body_format => :to_hash
    },
    'v2' => {
      :url => URI::escape("/#{room_id}/notification"),
      :body_format => :to_json
    }
  }[version]
end
send_file_config() click to toggle source
# File lib/hipchat/api_version.rb, line 189
def send_file_config
  {
    'v2' => {
      :url => URI::escape("/#{room_id}/share/file"),
      :body_format => :to_json
    }
  }[version]
end
send_message_config() click to toggle source
# File lib/hipchat/api_version.rb, line 167
def send_message_config
  {
    'v2' => {
      :url => URI::escape("/#{room_id}/message"),
      :body_format => :to_json
    }
  }[version]
end
statistics_config() click to toggle source
# File lib/hipchat/api_version.rb, line 233
def statistics_config
  {
    'v2' => {
      :url => URI::escape("/#{room_id}/statistics")
    }
  }[version]
end
topic_config() click to toggle source
# File lib/hipchat/api_version.rb, line 207
def topic_config
  {
    'v1' => {
      :url => '/topic',
      :method => :post,
      :body_format => :to_hash
    },
    'v2' => {
      :url => URI::escape("/#{room_id}/topic"),
      :method => :put,
      :body_format => :to_json
    }
  }[version]
end
update_room_config() click to toggle source
# File lib/hipchat/api_version.rb, line 124
def update_room_config
  {
    'v2' => {
      :url => URI::escape("/#{room_id}"),
      :method => :put,
      :body_format => :to_json
    }
  }[version]
end
webhook_config() click to toggle source
# File lib/hipchat/api_version.rb, line 241
def webhook_config
  raise InvalidApiVersion, 'This functionality is not supported in API v1' unless version.eql?('v2')
  {
    'v2' => {
      :url => URI::escape("/#{room_id}/webhook")
    }
  }[version]
end