Class: Slack::API

Inherits:
Object
  • Object
show all
Defined in:
lib/slack/api.rb

Constant Summary collapse

BASE_URL =
'https://slack.com/api'
BASE_HEADERS =
{ 'Content-Type' => 'application/json; charset=utf-8' }.freeze

Instance Method Summary collapse

Constructor Details

#initialize(slack_installation) ⇒ API

Returns a new instance of API.

Raises:

  • (ArgumentError)


10
11
12
13
14
# File 'lib/slack/api.rb', line 10

def initialize(slack_installation)
  @token = slack_installation.bot_access_token

  raise ArgumentError, "No token for slack installation #{slack_installation.id}" unless @token
end

Instance Method Details

#post(api_method, payload) ⇒ Object



16
17
18
19
20
21
# File 'lib/slack/api.rb', line 16

def post(api_method, payload)
  url = "#{BASE_URL}/#{api_method}"
  headers = BASE_HEADERS.merge('Authorization' => "Bearer #{token}")

  Gitlab::HTTP.post(url, body: payload.to_json, headers: headers)
end