Class: MtbProjectApi::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/mtb_project_api/client.rb

Constant Summary collapse

API_ENDPOINT =
'https://www.mtbproject.com/data/'.freeze

Instance Method Summary collapse

Constructor Details

#initialize(email, private_key) ⇒ Client

Returns a new instance of Client.



8
9
10
11
# File 'lib/mtb_project_api/client.rb', line 8

def initialize(email, private_key)
  @email = email
  @private_key = private_key
end

Instance Method Details

#get_conditions(params = {}) ⇒ Object

Returns conditions for given trail IDs.

Required Arguments: ids - one or array of trail IDs



48
49
50
# File 'lib/mtb_project_api/client.rb', line 48

def get_conditions(params = {})
  request_by_ids("get-conditions", params)
end

#get_local_trails(params = {}) ⇒ Object

Returns trails for a given query.

Required Arguments: lat - Latitude for a given area lon - Longitude for a given area

Optional Arguments: maxDistance - Max distance, in miles, from lat, lon. Default: 30. Max: 200. maxResults - Max number of trails to return. Default: 10. Max: 500. sort - Values can be ‘quality’, ‘distance’. Default: quality. minLength - Min trail length, in miles. Default: 0 (no minimum). minStars - Min star rating, 0-4. Default: 0.



25
26
27
28
29
30
31
32
33
34
# File 'lib/mtb_project_api/client.rb', line 25

def get_local_trails(params = {})
  allowed_keys = [:lat, :lon, :maxDistance, :maxResults, :sort, :minLength, :minStars]
  request_params = params.select { |k| allowed_keys.include?(k) }.merge(key: @private_key)

  request(
    http_method: :get,
    endpoint: "get-trails",
    params: request_params
  )
end

#get_to_dos(params = {}) ⇒ Object

Returns up to 200 of the user’s to-do trail IDs.

Optional Arguments: startPos - The starting index of the list to return. Defaults to 0.



56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/mtb_project_api/client.rb', line 56

def get_to_dos(params = {})
  request_params = params.merge({
    email: @email,
    key: @private_key
  })

  request(
      http_method: :get,
      endpoint: "get-to-dos",
      params: request_params
    )
end

#get_trails_by_id(params = {}) ⇒ Object

Returns trails for given trail IDs.

Required Arguments: ids - one or array of trail IDs



40
41
42
# File 'lib/mtb_project_api/client.rb', line 40

def get_trails_by_id(params = {})
  request_by_ids("get-trails-by-id", params)
end