https://github.com/zostay/webservice-bonusly
Small library for working with the Bonus.ly API
https://github.com/zostay/webservice-bonusly
Last synced: 7 months ago
JSON representation
Small library for working with the Bonus.ly API
- Host: GitHub
- URL: https://github.com/zostay/webservice-bonusly
- Owner: zostay
- Created: 2015-06-07T04:11:34.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2016-10-24T17:45:29.000Z (over 9 years ago)
- Last Synced: 2024-12-29T10:29:17.342Z (over 1 year ago)
- Language: Perl
- Size: 35.2 KB
- Stars: 1
- Watchers: 3
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: Changes
Awesome Lists containing this project
README
# 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 => "...",
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](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](https://metacpan.org/pod/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
# 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.