module FitnessparkApi
Constants
- ResponseError
- STORES_URL
- VERSION
- VISITORS_URL
Public Instance Methods
api_key()
click to toggle source
# File lib/fitnesspark_api.rb, line 68 def api_key ENV['FITNESSPARK_SESSION_KEY'] || HttpClient.api_key end
base_data_by_name(slug)
click to toggle source
# File lib/fitnesspark_api.rb, line 49 def base_data_by_name(slug) all_base_data = stores result = all_base_data['stores'].find do |store_hash| store_hash['name'] == slug || store_hash['id'] == slug || store_hash['slug'] == slug || store_hash.dig('localized_slugs', 'de') == slug || store_hash.dig('localized_slugs', 'it') == slug || store_hash.dig('localized_slugs', 'fr') == slug || store_hash['additional_slugs'].include?(slug) || store_hash['additional_ids'].include?(slug) end return result if result all_slugs = stores['stores'].map { |s| s['slug'] }.uniq.sort raise(ArgumentError, "Unable to find #{slug.inspect}. Did you mean one of these: #{all_slugs.inspect}") end
center_volume_id(slug)
click to toggle source
# File lib/fitnesspark_api.rb, line 40 def center_volume_id(slug) base_data = base_data_by_name(slug) detail_data = store(base_data['id']) markets = detail_data['markets'] raise(ArgumentError, "Found more than one center for slug #{slug}") unless markets.one? HttpClient.get_center_volume_id(markets.first['weblink']['url']) end
config()
click to toggle source
# File lib/fitnesspark_api.rb, line 36 def config YAML.load_file(File.join(File.dirname(__FILE__), '..', 'data', 'config.yml')) end
store(center_id)
click to toggle source
# File lib/fitnesspark_api.rb, line 23 def store(center_id) get_params = { 'key' => api_key } uri = URI(File.join(STORES_URL, center_id)) uri.query = URI.encode_www_form(get_params) HttpClient.get_json(uri) end
stores(get_params = nil)
click to toggle source
# File lib/fitnesspark_api.rb, line 14 def stores(get_params = nil) get_params ||= config.dig('stores', 'default_params') get_params['key'] ||= api_key uri = URI(STORES_URL) uri.query = URI.encode_www_form(get_params) HttpClient.get_json(uri) end
visitors(center_id)
click to toggle source
# File lib/fitnesspark_api.rb, line 30 def visitors(center_id) center_id = center_volume_id(center_id) if center_id.is_a?(String) && !center_id.match(/\A\d+\z/) uri = URI(format(VISITORS_URL, center_id: center_id)) HttpClient.get_json(uri) end