class CommitLive::API

Attributes

conn[R]

Public Class Methods

new(api_url = nil) click to toggle source
# File lib/commit-live/api.rb, line 8
def initialize(api_url = nil)
        endpoint = api_url || CommitLive::Endpoint.new.get()
        @conn = Faraday.new(url: endpoint) do |faraday|
                faraday.adapter Faraday.default_adapter
        end
end

Public Instance Methods

get(url, options = {}) click to toggle source
# File lib/commit-live/api.rb, line 15
def get(url, options = {})
        request :get, url, options
end
post(url, options = {}) click to toggle source
# File lib/commit-live/api.rb, line 19
def post(url, options = {})
        request :post, url, options
end

Private Instance Methods

buildBody(request, body) click to toggle source
# File lib/commit-live/api.rb, line 59
def buildBody(request, body)
        if body
                request.body = Oj.dump(body, mode: :compat)
        end
end
buildHeaders(request, headers) click to toggle source
# File lib/commit-live/api.rb, line 43
def buildHeaders(request, headers)
        if headers
                headers.each do |header, value|
                        request.headers[header] = value
                end
        end
end
buildParams(request, params) click to toggle source
# File lib/commit-live/api.rb, line 51
def buildParams(request, params)
        if params
                params.each do |param, value|
                        request.params[param] = value
                end
        end
end
buildRequest(request, options) click to toggle source
# File lib/commit-live/api.rb, line 37
def buildRequest(request, options)
        buildHeaders(request, options[:headers])
        buildParams(request, options[:params])
        buildBody(request, options[:body])
end
request(method, url, options = {}) click to toggle source
# File lib/commit-live/api.rb, line 25
def request(method, url, options = {})
        begin
                connection = options[:client] || @conn
                connection.send(method) do |req|
                        req.url url
                        buildRequest(req, options)
                end
        rescue Faraday::ConnectionFailed
                puts "Connection error. Please try again."
        end
end