mehdibo/ft-client

Client library for Forty Two Intranet API

v1.0.1 2022-09-08 10:22 UTC

This package is auto-updated.

Last update: 2024-11-22 15:49:36 UTC


README

Latest Stable Version Latest Unstable Version License Total Downloads PHP Version Require Unit tests

Client library to consume the 42 Intranet's API

Installation

composer require mehdibo/ft-client

Usage examples

Using the Authorization Code grant

include 'vendor/autoload.php';

$client = \Mehdibo\FortyTwo\Client\BasicClientFactory::createFromCredentials(
    'CLIENT_ID',
    'CLIENT_SECRET',
    'REDIRECT_URI'
);

$client->fetchTokenFromAuthCode($_GET['code']);
$user = $client->get("/me");

Using the Client Credentials grant

include 'vendor/autoload.php';

$client = \Mehdibo\FortyTwo\Client\BasicClientFactory::createFromCredentials(
    'CLIENT_ID',
    'CLIENT_SECRET',
    'REDIRECT_URI'
);

// This is not necessary, if no token was fetched it will automatically fetch one using the Client Credentials grant
$client->fetchTokenFromClientCredentials();

$cute = $client->get("/users/norminet");

Enumerating pages

This client comes with a method to easily enumerate pages of a paginated API endpoint.

include 'vendor/autoload.php';

$client = \Mehdibo\FortyTwo\Client\BasicClientFactory::createFromCredentials(
    'CLIENT_ID',
    'CLIENT_SECRET',
    'REDIRECT_URI'
);

$users = $client->enumerate("/users", [
    'sort' => '-id',
]);

try {
    foreach ($users as $user) {
        echo $user['login'] . PHP_EOL;
    }
} catch (\Mehdibo\FortyTwo\Client\Exception\EnumerationRateLimited $e) {
    echo "Rate limited, retry in " . $e->retryAfter . " seconds\n";
    echo "Stopped at page " . $e->reachedPage . "\n";
}