{"id":18779381,"url":"https://github.com/zostay/webservice-bonusly","last_synced_at":"2025-12-18T00:30:19.137Z","repository":{"id":33359394,"uuid":"37004218","full_name":"zostay/WebService-Bonusly","owner":"zostay","description":"Small library for working with the Bonus.ly API","archived":false,"fork":false,"pushed_at":"2016-10-24T17:45:29.000Z","size":36,"stargazers_count":1,"open_issues_count":1,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-12-29T10:29:17.342Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zostay.png","metadata":{"files":{"readme":"README.md","changelog":"Changes","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-06-07T04:11:34.000Z","updated_at":"2016-10-24T16:43:41.000Z","dependencies_parsed_at":"2022-09-11T23:41:38.532Z","dependency_job_id":null,"html_url":"https://github.com/zostay/WebService-Bonusly","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zostay%2FWebService-Bonusly","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zostay%2FWebService-Bonusly/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zostay%2FWebService-Bonusly/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zostay%2FWebService-Bonusly/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zostay","download_url":"https://codeload.github.com/zostay/WebService-Bonusly/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239690602,"owners_count":19681130,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T20:19:53.720Z","updated_at":"2025-12-18T00:30:19.099Z","avatar_url":"https://github.com/zostay.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NAME\n\nWebService::Bonusly - A handy library for accessing the Bonus.ly API\n\n# VERSION\n\nversion 1.001\n\n# SYNOPSIS\n\n    use WebService::Bonusly;\n    my $bonusly = WebService::Bonusly-\u003enew( token =\u003e $token );\n        \n    $res = $bonusly-\u003eauthentication-\u003esessions(\n        email =\u003e '...',\n        password =\u003e '...',\n    );\n        \n    $res = $bonusly-\u003ebonuses-\u003eget( id =\u003e '...' );\n    $res = $bonusly-\u003ebonuses-\u003egive( reason =\u003e '...' );\n    $res = $bonusly-\u003ebonuses-\u003elist;\n        \n    $res = $bonusly-\u003ecompanies-\u003eshow;\n    $res = $bonusly-\u003ecompanies-\u003eupdate;\n        \n    $res = $bonusly-\u003eleaderboards-\u003estandouts;\n        \n    $res = $bonusly-\u003eredemptions-\u003eget( id =\u003e '...' );\n        \n    $res = $bonusly-\u003erewards-\u003eget( id =\u003e '...' );\n    $res = $bonusly-\u003erewards-\u003elist;\n        \n    $res = $bonusly-\u003eusers-\u003eadd(\n        email =\u003e '...',\n        first_name =\u003e '...',\n        last_name =\u003e '...',\n    );\n    $res = $bonusly-\u003eusers-\u003eautocomplete( search =\u003e '...' );\n    $res = $bonusly-\u003eusers-\u003ebonuses( id =\u003e '...' );\n    $res = $bonusly-\u003eusers-\u003ecreate_redemption(\n        id =\u003e '...',\n        denomination_id =\u003e '...',\n    );\n    $res = $bonusly-\u003eusers-\u003edelete( id =\u003e '...' );\n    $res = $bonusly-\u003eusers-\u003eget( id =\u003e '...' );\n    $res = $bonusly-\u003eusers-\u003elist;\n    $res = $bonusly-\u003eusers-\u003eme;\n    $res = $bonusly-\u003eusers-\u003eneighborhood( id =\u003e '...' );\n    $res = $bonusly-\u003eusers-\u003eredemptions( id =\u003e '...' );\n    $res = $bonusly-\u003eusers-\u003eupdate( id =\u003e '...' );\n        \n    $res = $bonusly-\u003evalues-\u003eget( id =\u003e '...' );\n    $res = $bonusly-\u003evalues-\u003elist;\n\n# DESCRIPTION\n\nThis is a fairly simple library for performing actions with the Bonus.ly API.\n\n# ERRORS\n\nNormally bonusly will return `{ success =\u003e 0, message =\u003e $reason }` when\nthere are errors, but on the off chance that something went really wrong,\n`WebService::Bonusly` will synthesize a data structure like this:\n\n    {\n        success =\u003e 0,\n        message =\u003e 'Not Found',\n        status =\u003e 404,\n        content =\u003e \"\u003chtml\u003e...\",\n        response_object =\u003e HTTP::Response-\u003enew(...),\n    }\n\nWhen handling errors, you **may** want to consider checking if there is a\n`response_object` and logging its contents somewhere.\n\n# ATTRIBUTES\n\n## token\n\nThis is the access token to use to perform actions with.\n\n## debug\n\nThis 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. \n\nThis is done through calls to the `print_debug` method.\n\n## authentication\n\nThis provides methods for accessing the Authentication aspects of the API. This provides the following methods:\n\n### sessions\n\n    $res = $bonusly-\u003eauthentication-\u003esessions(%params);\n\nPerforms a POST against `/api/v1/sessions` at bonus.ly.\n\nRequired Parameters: `email`, `password`\n\n## bonuses\n\nThis provides methods for accessing the Bonuses aspects of the API. This provides the following methods:\n\n### get\n\n    $res = $bonusly-\u003ebonuses-\u003eget(%params);\n\nPerforms a GET against `/api/v1/bonuses/:id` at bonus.ly.\n\nRequired Parameters: `id`\n\n### give\n\n    $res = $bonusly-\u003ebonuses-\u003egive(%params);\n\nPerforms a POST against `/api/v1/bonuses` at bonus.ly.\n\nRequired Parameters: `reason`\n\nOptional Parameters: `giver_email`, `parent_bonus_id`, `receiver_email`, `amount`\n\n### list\n\n    $res = $bonusly-\u003ebonuses-\u003elist(%params);\n\nPerforms a GET against `/api/v1/bonuses` at bonus.ly.\n\nOptional Parameters: `limit`, `skip`, `start_time`, `end_time`, `non_zero`, `top_level`, `giver_email`, `receiver_email`, `user_email`, `hashtag`, `include_children`\n\n## companies\n\nThis provides methods for accessing the Companies aspects of the API. This provides the following methods:\n\n### show\n\n    $res = $bonusly-\u003ecompanies-\u003eshow;\n\nPerforms a GET against `/api/v1/companies/show` at bonus.ly.\n\n### update\n\n    $res = $bonusly-\u003ecompanies-\u003eupdate(%params);\n\nPerforms a PUT against `/api/v1/companies/update` at bonus.ly.\n\nOptional Parameters: `name`, `custom_properties`\n\nThe `custom_properties` parameter must be given a reference to a hash.\n\n## leaderboards\n\nThis provides methods for accessing the Leaderboards aspects of the API. This provides the following methods:\n\n### standouts\n\n    $res = $bonusly-\u003eleaderboards-\u003estandouts(%params);\n\nPerforms a GET against `/api/v1/analytics/standouts` at bonus.ly.\n\nOptional Parameters: `role`, `value`, `limit`, `period`, `custom_property_name`, `custom_property_value`\n\n## redemptions\n\nThis provides methods for accessing the Redemptions aspects of the API. This provides the following methods:\n\n### get\n\n    $res = $bonusly-\u003eredemptions-\u003eget(%params);\n\nPerforms a GET against `/api/v1/redemptions/:id` at bonus.ly.\n\nRequired Parameters: `id`\n\n## rewards\n\nThis provides methods for accessing the Rewards aspects of the API. This provides the following methods:\n\n### get\n\n    $res = $bonusly-\u003erewards-\u003eget(%params);\n\nPerforms a GET against `/api/v1/rewards/:id` at bonus.ly.\n\nRequired Parameters: `id`\n\n### list\n\n    $res = $bonusly-\u003erewards-\u003elist(%params);\n\nPerforms a GET against `/api/v1/rewards` at bonus.ly.\n\nOptional Parameters: `catalog_country`, `request_country`, `personalize_for`\n\n## users\n\nThis provides methods for accessing the Users aspects of the API. This provides the following methods:\n\n### add\n\n    $res = $bonusly-\u003eusers-\u003eadd(%params);\n\nPerforms a POST against `/api/v1/users` at bonus.ly.\n\nRequired Parameters: `email`, `first_name`, `last_name`\n\nOptional Parameters: `custom_properties`, `user_mode`, `budget_boost`, `external_unique_id`\n\nThe `custom_properties` parameter must be given a reference to a hash.\n\n### autocomplete\n\n    $res = $bonusly-\u003eusers-\u003eautocomplete(%params);\n\nPerforms a GET against `/api/v1/users/autocomplete` at bonus.ly.\n\nRequired Parameters: `search`\n\n### bonuses\n\n    $res = $bonusly-\u003eusers-\u003ebonuses(%params);\n\nPerforms a GET against `/api/v1/users/:id/bonuses` at bonus.ly.\n\nRequired Parameters: `id`\n\nOptional Parameters: `skip`, `start_time`, `hashtag`, `end_time`, `include_children`, `limit`, `role`\n\n### create\\_redemption\n\n    $res = $bonusly-\u003eusers-\u003ecreate_redemption(%params);\n\nPerforms a POST against `/api/v1/users/:id/redemptions` at bonus.ly.\n\nRequired Parameters: `id`, `denomination_id`\n\n### delete\n\n    $res = $bonusly-\u003eusers-\u003edelete(%params);\n\nPerforms a DELETE against `/api/v1/users/:id` at bonus.ly.\n\nRequired Parameters: `id`\n\n### get\n\n    $res = $bonusly-\u003eusers-\u003eget(%params);\n\nPerforms a GET against `/api/v1/users/:id` at bonus.ly.\n\nRequired Parameters: `id`\n\n### list\n\n    $res = $bonusly-\u003eusers-\u003elist(%params);\n\nPerforms a GET against `/api/v1/users` at bonus.ly.\n\nOptional Parameters: `limit`, `skip`, `email`, `sort`\n\n### me\n\n    $res = $bonusly-\u003eusers-\u003eme;\n\nPerforms a GET against `/api/v1/users/me` at bonus.ly.\n\n### neighborhood\n\n    $res = $bonusly-\u003eusers-\u003eneighborhood(%params);\n\nPerforms a GET against `/api/v1/users/:id/neighborhood` at bonus.ly.\n\nRequired Parameters: `id`\n\nOptional Parameters: `days`\n\n### redemptions\n\n    $res = $bonusly-\u003eusers-\u003eredemptions(%params);\n\nPerforms a GET against `/api/v1/users/:id/redemptions` at bonus.ly.\n\nRequired Parameters: `id`\n\nOptional Parameters: `limit`, `skip`\n\n### update\n\n    $res = $bonusly-\u003eusers-\u003eupdate(%params);\n\nPerforms a PUT against `/api/v1/users/:id` at bonus.ly.\n\nRequired Parameters: `id`\n\nOptional Parameters: `email`, `first_name`, `last_name`, `custom_properties`, `user_mode`, `budget_boost`, `external_unique_id`\n\nThe `custom_properties` parameter must be given a reference to a hash.\n\n## values\n\nThis provides methods for accessing the Values aspects of the API. This provides the following methods:\n\n### get\n\n    $res = $bonusly-\u003evalues-\u003eget(%params);\n\nPerforms a GET against `/api/v1/values/:id` at bonus.ly.\n\nRequired Parameters: `id`\n\n### list\n\n    $res = $bonusly-\u003evalues-\u003elist;\n\nPerforms a GET against `/api/v1/values` at bonus.ly.\n\n# DEVELOPMENT\n\nIf 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:\n\n    dzil authordeps | cpanm\n    dzil build\n\nInstead of running the \"dzil build\" command you may also run:\n\n    ./apigen.pl\n\nThe templates for generating the code are found in `tmpl`.\n\n# AUTHOR\n\nAndrew Sterling Hanenkamp \u003chanenkamp@cpan.org\u003e\n\n# COPYRIGHT AND LICENSE\n\nThis software is copyright (c) 2016 by Qubling Software LLC.\n\nThis is free software; you can redistribute it and/or modify it under\nthe same terms as the Perl 5 programming language system itself.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzostay%2Fwebservice-bonusly","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzostay%2Fwebservice-bonusly","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzostay%2Fwebservice-bonusly/lists"}