class TunefishClient::Client

Attributes

connection[R]

Public Class Methods

new(host: "http://tunefi.sh", version: "v1") click to toggle source
# File lib/tunefish_client/client.rb, line 10
def initialize(host: "http://tunefi.sh", version: "v1")
  @connection = Faraday.new(url: host)
  @version = version
end

Public Instance Methods

activities() click to toggle source
# File lib/tunefish_client/client.rb, line 33
def activities
  response = connection.get("#{base_url}/activities")
  data = parse_response_body(response.body)
  build_activity_objects(data["activities"])
end
user(id) click to toggle source
# File lib/tunefish_client/client.rb, line 15
def user(id)
  response = connection.get("#{base_url}/users/#{id}")
  data = parse_response_body(response.body)
  User.new(data["user"])
end
user_activities(id) click to toggle source
# File lib/tunefish_client/client.rb, line 27
def user_activities(id)
  response = connection.get("#{base_url}/users/#{id}/activities")
  data = parse_response_body(response.body)
  build_activity_objects(data["activities"])
end
users() click to toggle source
# File lib/tunefish_client/client.rb, line 21
def users
  response = connection.get("#{base_url}/users")
  data = parse_response_body(response.body)
  data["users"].map { |user_data| User.new(user_data) }
end

Private Instance Methods

base_url() click to toggle source
# File lib/tunefish_client/client.rb, line 45
def base_url
  "/api/#{@version}"
end
build_activity_objects(activities) click to toggle source
# File lib/tunefish_client/client.rb, line 49
def build_activity_objects(activities)
  activities.map { |activity_data| Activity.new(activity_data) }
end
parse_response_body(body) click to toggle source
# File lib/tunefish_client/client.rb, line 41
def parse_response_body(body)
  JSON.parse(body)
end