NAME
WebService::HealthGraph - A thin wrapper around the Runkeeper (Health Graph) API
VERSION
version 0.000004
SYNOPSIS
my
$runkeeper
= WebService::HealthGraph->new(
debug
=> 1,
token
=>
'foo'
,
);
my
$user
=
$runkeeper
->user;
use
Data::Printer;
p
$user
->content;
# Fetch a weight feed
use
DateTime ();
my
$cutoff
= DateTime->now->subtract(
days
=> 7 );
my
$uri
= uri(
path
=>
'/weight'
,
query
=> {
noEarlierThan
=>
$cutoff
->ymd },
);
my
$feed
=
$runkeeper
->get(
$uri
, {
feed
=> 1 });
p
$feed
->content;
DESCRIPTION
BETA BETA BETA. The interface is subject to change.
This is a very thin wrapper around the Runkeeper (Health Graph) API. At this point it assumes that you already have an OAuth token to connect with. You can use Mojolicious::Plugin::Web::Auth::Site::Runkeeper to create a token. If that doesn't suit you, patches to add OAuth token retrieval to this module will be happily accepted.
CONSTRUCTOR ARGUMENTS
auto_pagination
Boolean. If enabled, response objects will continue to fetch new result pages as the iterator requires them. Defaults to true.
base_url
The URL of the API. Defaults to https://api.runkeeper.com. This is settable in case you'd need this for mocking.
debug( $bool )
Turns on debugging via LWP::ConsoleLogger. Off by default.
token
OAuth token. Optional, but you'll need to to get any URLs.
ua
A user agent object of the LWP::UserAgent family. If you provide your own, be sure you set the correct default headers required for authentication.
url_map
Returns a map of keys to URLs, as provided by the user
endpoint. Runkeeper wants you to use these URLs rather than constructing your own.
uri_for
Gives you the corresponding url (in the form of an URI object) for any key which exists in url_map
. You can optionally pass a HashRef of query params to this method.
my
$team_uri
=
$runkeeper
->uri_for(
'team'
, {
pageSize
=> 10 } );
my
$friends
=
$runkeeper
->get(
$runkeeper
->uri_for(
'team'
, {
pageSize
=> 10 } ),
{
feed
=> 1 }
);
url_for
Convenience method which points to url_for
. Will be removed in a later release.
user
The WebService::HealthGraph::Response object for the user
endpoint.
user_id
The id of the user as provided by the user
endpoint.
METHODS
get( $url, $optional_args )
This module will try to do the right thing with the minimum amount of information:
my
$weight_response
=
$runkeeper
->get(
'weight'
, {
feed
=> 1 } );
if
(
$weight_response
->success ) {
...
}
Optionally, you can provide your own Accept (or other) headers:
my
$record_response
=
$runkeeper
->get(
'records'
,
{
headers
=>
{
Accept
=>
'application/vnd.com.runkeeper.Records+json'
}
);
Returns a WebService::HealthGraph::Response object.
CAVEATS
Most response content will contain a HashRef
, but the records
endpoint returns a response with an ArrayRef
in the content.
AUTHOR
Olaf Alders <olaf@wundercounter.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2016 by Olaf Alders.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.