Skip to content

PHP SDK for DigitalHumani's RaaS (Reforestation-as-a-Service)

License

Notifications You must be signed in to change notification settings

rickkuilman/digital-humani-php-sdk

Repository files navigation

🌳 Digital Humani - PHP SDK

Test status Latest Stable Version Total Downloads Latest Unstable Version License PHP Version Require

Unofficial PHP SDK for DigitalHumani's RaaS (Reforestation-as-a-Service)

Installation

You can install the package via composer:

composer require rickkuilman/digital-humani-php-sdk

Preparation

  • Create a sandbox or production account on DigitalHumani.com.
  • Grab your Enterprise ID and API Key from the "Developer" tab.

Basic Usage

// Create new sandbox instance
$digitalHumani = new DigitalHumani($apiKey, $enterpriseId);

// Plant a tree
$digitalHumani->plantTree('[email protected]');

// Count trees planted
$digitalHumani->treeCount();

Using the DigitalHumani instance you may perform multiple actions as well as retrieve the different resources DigitalHumani's API provides:

Managing Enterprises

// Get current Enterprise
$enterprise = $digitalHumani->enterprise();

// .. or get Enterprise by ID
$enterprise = $digitalHumani->enterprise('4c6e672d'); 

// 🌳 Count planted trees 
$enterprise->treeCount(); 

// 🌳 Count planted trees since 2021-01-01
$enterprise->treeCount(Carbon::make('2021-01-01'));

// 🌳 Count planted trees between 2021-01-01 and 2021-08-01
$enterprise->treeCount(Carbon::make('2021-01-01'), Carbon::make('2022-08-01'));

// 🌳 Count planted trees for specific month
$enterprise->treeCountForMonth(Carbon::make('2021-08'));

// 🌳 Plant tree
$enterprise->plantTree('[email protected]')

Notice for lines with 🌳 icon:

Since the Enterprise ID is available in the DigitalHumani instance, you may replace $enterprise with $digitalHumani and expect the same results.

Managing Projects

// Get list of all Projects
$projects = $digitalHumani->projects();

// Get second project
$project = $projects[1];

// .. or get Project by ID
$project = $digitalHumani->project('81818182');

// Plant a tree for this project
$project->plantTree('[email protected]', 3);

Managing Trees

// Plant one tree
$tree = $digitalHumani->plantTree('[email protected]');

// Plant ten trees
$trees = $digitalHumani->plantTree('[email protected]', 10);

// Get UUID of tree(s)
$uuid = $tree->uuid;

// Get details of a planted tree (or trees) by ID
$digitalHumani->tree('9f05511e-56c6-40f7-b5ca-e25567991dc1');

// Count trees for a user
$digitalHumani->countTreesPlantedByUser('[email protected]');

Switch to production environment

// Set the third parameter to "true"
$digitalHumani = new DigitalHumani($apiKey, $enterpriseId, true);

// ..or use a method
$digitalHumani->useProductionEnvironment();

Overrule (default) project or enterprise

Many methods allow additional parameters to overrule the (default) project or enterprise:

// Create new sandbox instance, leaving out the enterpriseId
$digitalHumani = new DigitalHumani($apiKey);

// Plant a tree for a specific project and enterprise
$digitalHumani->plantTree('[email protected]', 1, $projectId, $enterpriseId);

// Set a default enterprise afterwards, which will be used for all requests from now on
$digitalHumani->setEnterprise('11111111');

// Plant a tree for a specific project using the default enterprise from above
$digitalHumani->plantTree('[email protected]', 1, $projectId);

// Count trees of a specific month for a specific enterprise, overruling the default
$digitalHumani->treeCountForMonth(Carbon::make('2021-10'), '99999999');

Happy planting! 🌳

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email [email protected] instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.

PHP Package Boilerplate

This package was generated using the PHP Package Boilerplate by Beyond Code.