Sha256: 70f694d6afa1985cf9f35841f4789cf14634dd83feb5df1f49c7cb7b6698ce40

Contents?: true

Size: 1.64 KB

Versions: 1

Compression:

Stored size: 1.64 KB

Contents

require "rest-client"
require 'json'
require 'active_support/inflector'


require_relative "gifter_hub/version"
require_relative "gifter_hub/util"
require_relative "gifter_hub/operations/get"
require_relative "gifter_hub/operations/create"

require_relative "gifter_hub/api_resource"
require_relative "gifter_hub/gift_card"

module GifterHub
  @api_version = nil
  @api_base = 'https://gifter.openfan.net'
  @api_key = nil

  class << self
    attr_accessor :api_version, :api_base, :company_token

    def api_version=(version=1.0)
      @api_version = version
    end

    # change base url based on env
    def environment=(env)
      @environment = env
      if env != 'production'
        @api_base = 'https://gifter.openfan.net/api'
      end
    end
  end

  def self.api_url(url='', api_base_url=nil)
    (api_base_url || @api_base) + url
  end

  def self.request(method, url, params, opts, api_base_url=nil)
    api_base_url = api_base_url || @api_base
    request_opts = {}
    url = api_url(url, api_base_url)

    headers = {
      'Access-Token' => company_token
    }

    case method.to_s.downcase.to_sym
    when :get, :head, :delete
      # Make params into GET parameters
      url += "#{URI.parse(url).query ? '&' : '?'}#{Util.encode_parameters(params)}" if params && params.any?
      payload = nil
    else
      payload = params
    end

    request_opts.update(method: method,
                        headers: headers,
                        payload: payload,
                        url: url)

    response = execute_request(request_opts)

    JSON.parse(response.body)
  end

  def self.execute_request(opts)
    RestClient::Request.execute(opts)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
gifter_hub-0.1.7 lib/gifter_hub.rb