PHP code example of furious-squad / furious-api-sdk
1. Go to this page and download the library: Download furious-squad/furious-api-sdk library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
furious-squad / furious-api-sdk example snippets
use Furious\FuriousApiSdk\FuriousApiSdk;
use Furious\FuriousApiSdk\Model\Config;
$config = new Config("https://<my instance url>");
$sdk = new FuriousApiSdk($config, [
'timeout' => 5
]);
$sdk->authenticate([
'username' => 'myAPIUsername',
'password' => 'myAPIPassword'
]);
use Furious\FuriousApiSdk\Resource\Absence;
$absence = $sdk->getResource(Absence::class);
$results = $absence->search(['pseudo']);
use Furious\FuriousApiSdk\Query\Filter\Equal;
$results = $absence->search(
['pseudo', 'status', 'start_date'],
[ Equal::set('pseudo', 'john.doe') ]
);
use Furious\FuriousApiSdk\Query\Order\OrderAsc;
$results = $absence->search(
['pseudo', 'status', 'start_date'],
[ Equal::set('pseudo', 'john.doe') ],
[ OrderAsc::field('start_date') ]
);
$postit = $sdk->getResource(Postit::class);
$today = (new \DateTime())->format('Y-m-d');
$yesterday = (new \DateTime())->sub(new \DateInterval('P1D'))->format('Y-m-d');
$sixMonthsAgo = (new \DateTime())->sub(new \DateInterval('P6M'))->format('Y-m-d');
$baseFilters = [
Equal::set('type', 'crm'),
Equal::set('id_item', '12345'),
NotEqual::set('status', '0'),
];
$results = $postit->searchBatch([
'future' => [
'fields' => ['id'],
'filters' => array_merge($baseFilters, [
Greatest::set('date', $today),
]),
'orders' => [],
'limit' => 1,
],
'past' => [
'fields' => ['id'],
'filters' => array_merge($baseFilters, [
LessOrEqual::set('date', $yesterday),
Greatest::set('date', $sixMonthsAgo),
]),
'orders' => [],
'limit' => 1,
]
];
$futurCount = $results['future']['meta']['totalElementsWithFilters'] ?? 0;
$pastCount = $results['past']['meta']['totalElementsWithFilters'] ?? 0;
$response = $absence->create([
'pseudo' => 'john.doe',
'start_date' => '2025-01-01',
'end_date' => '2025-01-05',
'entity' => 'entity_1',
'half_day' => '0',
'type' => 'home_office'
]);
$updateResponse = $absence->update([
'id' => $absenceId,
'pseudo' => 'jane.doe',
'start_date' => '2025-01-02',
'end_date' => '2025-01-06'
]);
use Furious\FuriousApiSdk\Resource\Contract;
$contract = $sdk->getResource(Contract::class);
$response = $contract->create([
'name' => 'Example Company',
'date_limit' => '2025-07-03',
'client_company_id' => 12345,
'project_id' => 12345,
'content' => 'Example content',
'prevenance' => 123,
'tacite_reconduction'=> 456,
'entity' => 'entity_3',
'custom_fields' => [
[ 'name' => 'custom_field_1', 'value' => 'value_1' ],
[ 'name' => 'custom_field_2', 'value' => 'value_2' ]
]
]);
use Furious\FuriousApiSdk\Query\Filter\IsNull;
$results = $absence->search(
['id', 'pseudo', 'end_date'],
[ IsNull::set('end_date') ]
);
$gql = $absence->buildSearchString(
['pseudo', 'start_date'],
[ Equal::set('pseudo', 'jane.doe') ],
[ OrderAsc::field('start_date') ]
);
echo $gql;
$response = $absence->create([
[
'pseudo' => 'john.doe',
'start_date' => '2025-09-01',
'end_date' => '2025-09-05',
'entity' => 'entity_1',
'half_day' => '0',
'type' => 'home_office'
],
[
'pseudo' => 'jane.doe',
'start_date' => '2025-10-01',
'end_date' => '2025-10-05',
'entity' => 'entity_2',
'half_day' => '0',
'type' => 'home_office'
]
]);