module UkVehicleData

Constants

API_BASE
VERSION

Attributes

api_key[W]

Public Class Methods

api_key() click to toggle source
# File lib/uk_vehicle_data.rb, line 23
def api_key

end
request(method, resource, params={}) click to toggle source
# File lib/uk_vehicle_data.rb, line 29
def request method, resource, params={}
    vd_api_key = params[:auth_apikey] || UkVehicleData.api_key
    vd_api_nullitems = params[:api_nullitems] || 1
    vd_version = params[:v] || 2

    params.merge!({api_nullitems: vd_api_nullitems, v: vd_version, auth_apikey: vd_api_key})

    defined? vd_api_key or raise(
        ConfigurationError, "UkVehicleData api key not configured"
    )
    defined? method or raise(
        ArgumentError, "Request method has not been specified"
    )
    defined? resource or raise(
        ArgumentError, "Request resource has not been specified"
    )

    headers = { accept: :json, content_type: :json }.merge({params: params})

    RestClient::Request.new({
        method: method,
        url: API_BASE + resource,
        headers: headers
    }).execute do |response, request, result|
        str_response = response.to_str        
        str_response.blank? ? '' : JSON.parse(str_response)
    end
end