trabajo-afectivo/lib/github/http_client.rb

47 lines
965 B
Ruby
Raw Normal View History

2021-03-10 16:25:26 +00:00
# Copyright (C) 2012-2016 Zammad Foundation, http://zammad-foundation.org/
class GitHub
class HttpClient
attr_reader :api_token, :endpoint
2021-03-10 16:25:26 +00:00
def initialize(endpoint, api_token)
raise 'api_token required' if api_token.blank?
raise 'endpoint required' if endpoint.blank?
@api_token = api_token
@endpoint = endpoint
end
def perform(payload)
response = UserAgent.post(
endpoint,
payload,
{
headers: headers,
json: true,
open_timeout: 6,
read_timeout: 16,
log: {
facility: 'GitHub',
},
},
)
2021-03-10 16:25:26 +00:00
if !response.success?
Rails.logger.error response.error
raise "Error while requesting GitHub GraphQL API: #{response.error}"
end
response.data
2021-03-10 16:25:26 +00:00
end
private
def headers
2021-03-10 16:25:26 +00:00
{
Authorization: "bearer #{api_token}"
2021-03-10 16:25:26 +00:00
}
end
end
end