NAME
WebService::Bonusly - A handy library for accessing the Bonus.ly API
VERSION
version 1.001
SYNOPSIS
use WebService::Bonusly;
my $bonusly = WebService::Bonusly->new( token => $token );
$res = $bonusly->authentication->sessions(
email => '...',
password => '...',
);
$res = $bonusly->bonuses->get( id => '...' );
$res = $bonusly->bonuses->give( reason => '...' );
$res = $bonusly->bonuses->list;
$res = $bonusly->companies->show;
$res = $bonusly->companies->update;
$res = $bonusly->leaderboards->standouts;
$res = $bonusly->redemptions->get( id => '...' );
$res = $bonusly->rewards->get( id => '...' );
$res = $bonusly->rewards->list;
$res = $bonusly->users->add(
email => '...',
first_name => '...',
last_name => '...',
);
$res = $bonusly->users->autocomplete( search => '...' );
$res = $bonusly->users->bonuses( id => '...' );
$res = $bonusly->users->create_redemption(
id => '...',
denomination_id => '...',
);
$res = $bonusly->users->delete( id => '...' );
$res = $bonusly->users->get( id => '...' );
$res = $bonusly->users->list;
$res = $bonusly->users->me;
$res = $bonusly->users->neighborhood( id => '...' );
$res = $bonusly->users->redemptions( id => '...' );
$res = $bonusly->users->update( id => '...' );
$res = $bonusly->values->get( id => '...' );
$res = $bonusly->values->list;
DESCRIPTION
This is a fairly simple library for performing actions with the Bonus.ly API.
ERRORS
Normally bonusly will return { success => 0, message => $reason }
when there are errors, but on the off chance that something went really wrong, WebService::Bonusly
will synthesize a data structure like this:
{
success => 0,
message => 'Not Found',
status => 404,
content => "<html>...",
response_object => HTTP::Response->new(...),
}
When handling errors, you may want to consider checking if there is a response_object
and logging its contents somewhere.
ATTRIBUTES
token
This is the access token to use to perform actions with.
debug
This is a boolean flag that, when set to true, causes messages to be printed to STDERR about what is being sent to and received from bonus.ly.
This is done through calls to the print_debug
method.
authentication
This provides methods for accessing the Authentication aspects of the API. This provides the following methods:
sessions
$res = $bonusly->authentication->sessions(%params);
Performs a POST against /api/v1/sessions
at bonus.ly.
Required Parameters: email
, password
bonuses
This provides methods for accessing the Bonuses aspects of the API. This provides the following methods:
get
$res = $bonusly->bonuses->get(%params);
Performs a GET against /api/v1/bonuses/:id
at bonus.ly.
Required Parameters: id
give
$res = $bonusly->bonuses->give(%params);
Performs a POST against /api/v1/bonuses
at bonus.ly.
Required Parameters: reason
Optional Parameters: giver_email
, parent_bonus_id
, receiver_email
, amount
list
$res = $bonusly->bonuses->list(%params);
Performs a GET against /api/v1/bonuses
at bonus.ly.
Optional Parameters: limit
, skip
, start_time
, end_time
, non_zero
, top_level
, giver_email
, receiver_email
, user_email
, hashtag
, include_children
companies
This provides methods for accessing the Companies aspects of the API. This provides the following methods:
show
$res = $bonusly->companies->show;
Performs a GET against /api/v1/companies/show
at bonus.ly.
update
$res = $bonusly->companies->update(%params);
Performs a PUT against /api/v1/companies/update
at bonus.ly.
Optional Parameters: name
, custom_properties
The custom_properties
parameter must be given a reference to a hash.
leaderboards
This provides methods for accessing the Leaderboards aspects of the API. This provides the following methods:
standouts
$res = $bonusly->leaderboards->standouts(%params);
Performs a GET against /api/v1/analytics/standouts
at bonus.ly.
Optional Parameters: role
, value
, limit
, period
, custom_property_name
, custom_property_value
redemptions
This provides methods for accessing the Redemptions aspects of the API. This provides the following methods:
get
$res = $bonusly->redemptions->get(%params);
Performs a GET against /api/v1/redemptions/:id
at bonus.ly.
Required Parameters: id
rewards
This provides methods for accessing the Rewards aspects of the API. This provides the following methods:
get
$res = $bonusly->rewards->get(%params);
Performs a GET against /api/v1/rewards/:id
at bonus.ly.
Required Parameters: id
list
$res = $bonusly->rewards->list(%params);
Performs a GET against /api/v1/rewards
at bonus.ly.
Optional Parameters: catalog_country
, request_country
, personalize_for
users
This provides methods for accessing the Users aspects of the API. This provides the following methods:
add
$res = $bonusly->users->add(%params);
Performs a POST against /api/v1/users
at bonus.ly.
Required Parameters: email
, first_name
, last_name
Optional Parameters: custom_properties
, user_mode
, budget_boost
, external_unique_id
The custom_properties
parameter must be given a reference to a hash.
autocomplete
$res = $bonusly->users->autocomplete(%params);
Performs a GET against /api/v1/users/autocomplete
at bonus.ly.
Required Parameters: search
bonuses
$res = $bonusly->users->bonuses(%params);
Performs a GET against /api/v1/users/:id/bonuses
at bonus.ly.
Required Parameters: id
Optional Parameters: skip
, start_time
, hashtag
, end_time
, include_children
, limit
, role
create_redemption
$res = $bonusly->users->create_redemption(%params);
Performs a POST against /api/v1/users/:id/redemptions
at bonus.ly.
Required Parameters: id
, denomination_id
delete
$res = $bonusly->users->delete(%params);
Performs a DELETE against /api/v1/users/:id
at bonus.ly.
Required Parameters: id
get
$res = $bonusly->users->get(%params);
Performs a GET against /api/v1/users/:id
at bonus.ly.
Required Parameters: id
list
$res = $bonusly->users->list(%params);
Performs a GET against /api/v1/users
at bonus.ly.
Optional Parameters: limit
, skip
, email
, sort
me
$res = $bonusly->users->me;
Performs a GET against /api/v1/users/me
at bonus.ly.
neighborhood
$res = $bonusly->users->neighborhood(%params);
Performs a GET against /api/v1/users/:id/neighborhood
at bonus.ly.
Required Parameters: id
Optional Parameters: days
redemptions
$res = $bonusly->users->redemptions(%params);
Performs a GET against /api/v1/users/:id/redemptions
at bonus.ly.
Required Parameters: id
Optional Parameters: limit
, skip
update
$res = $bonusly->users->update(%params);
Performs a PUT against /api/v1/users/:id
at bonus.ly.
Required Parameters: id
Optional Parameters: email
, first_name
, last_name
, custom_properties
, user_mode
, budget_boost
, external_unique_id
The custom_properties
parameter must be given a reference to a hash.
values
This provides methods for accessing the Values aspects of the API. This provides the following methods:
get
$res = $bonusly->values->get(%params);
Performs a GET against /api/v1/values/:id
at bonus.ly.
Required Parameters: id
list
$res = $bonusly->values->list;
Performs a GET against /api/v1/values
at bonus.ly.
DEVELOPMENT
If you are interested in helping develop this library. Please check it out from github. See https://github.com/zostay/WebService-Bonusly. The library is automatically generated from a script named apigen.pl. To build the library you will need to install Dist::Zilla and run:
dzil authordeps | cpanm
dzil build
Instead of running the "dzil build" command you may also run:
./apigen.pl
The templates for generating the code are found in tmpl.
AUTHOR
Andrew Sterling Hanenkamp <hanenkamp@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2016 by Qubling Software LLC.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.