class Formstack::Connection

Constants

BASE_URI

Attributes

access_token[R]
base_uri[R]

Public Class Methods

new(base_uri: BASE_URI, access_token: ENV['FORMSTACK_ACCESS_TOKEN']) click to toggle source
# File lib/formstack/connection.rb, line 11
def initialize(base_uri: BASE_URI, access_token: ENV['FORMSTACK_ACCESS_TOKEN'])
  @base_uri = URI(base_uri)
  @access_token = access_token
end

Public Instance Methods

delete(uri, args={}) click to toggle source
# File lib/formstack/connection.rb, line 28
def delete(uri, args={})
  request(uri: uri, request_factory: Net::HTTP::Delete, args: args)
end
get(uri, args={}) click to toggle source
# File lib/formstack/connection.rb, line 16
def get(uri, args={})
  request(uri: uri, request_factory: Net::HTTP::Get, args: args)
end
post(uri, args={}) click to toggle source
# File lib/formstack/connection.rb, line 20
def post(uri, args={})
  request(uri: uri, request_factory: Net::HTTP::Post, args: args)
end
put(uri, args={}) click to toggle source
# File lib/formstack/connection.rb, line 24
def put(uri, args={})
  request(uri: uri, request_factory: Net::HTTP::Put, args: args)
end

Private Instance Methods

parse_response(response) click to toggle source
# File lib/formstack/connection.rb, line 49
def parse_response(response)
  JSON.parse(response.body)
end
request(uri:, request_factory:, args: {}) click to toggle source
# File lib/formstack/connection.rb, line 34
def request(uri:, request_factory:, args: {})
  uri = base_uri + uri
  response = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https') do |http|
    request = request_factory.new uri
    request["Authorization"] = "Bearer #{access_token}"
    if !args.empty?
      request["Content-Type"] = "application/json"
      request.body = args.to_json
    end
    http.request request
  end

  parse_response(response)
end