1. Go to this page and download the library: Download hyperlab/laravel-dimona 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/ */
hyperlab / laravel-dimona example snippets
return [
/*
|--------------------------------------------------------------------------
| API Endpoints
|--------------------------------------------------------------------------
|
| The endpoints for the Dimona API.
|
*/
'endpoint' => env('DIMONA_ENDPOINT', 'https://services.socialsecurity.be/REST/dimona/v2'),
'oauth_endpoint' => env('DIMONA_OAUTH_ENDPOINT', 'https://services.socialsecurity.be/REST/oauth/v5/token'),
/*
|--------------------------------------------------------------------------
| Default Client
|--------------------------------------------------------------------------
|
| The default client to use when no client is specified.
|
*/
'default_client' => env('DIMONA_DEFAULT_CLIENT', 'default'),
/*
|--------------------------------------------------------------------------
| API Clients
|--------------------------------------------------------------------------
|
| Configure multiple API clients with different credentials.
| Each client has its own client_id, private_key_path, and enterprise_number.
|
*/
'clients' => [
'default' => [
'client_id' => env('DIMONA_CLIENT_ID'),
'private_key_path' => env('DIMONA_PRIVATE_KEY_PATH'),
],
// Add more clients as needed:
// 'client2' => [
// 'client_id' => env('DIMONA_CLIENT2_ID'),
// 'private_key_path' => env('DIMONA_CLIENT2_PRIVATE_KEY_PATH'),
// ],
],
];
use Hyperlab\Dimona\DimonaDeclarable;
use Hyperlab\Dimona\HasDimonaPeriods;
use Hyperlab\Dimona\Data\DimonaData;
use Hyperlab\Dimona\Data\DimonaLocationData;
class Employment extends Model implements DimonaDeclarable
{
use HasDimonaPeriods;
public function shouldDeclareDimona(): bool
{
// implement logic to determine if Dimona should be declared
}
public function getDimonaData(): DimonaData
{
return new DimonaData(
// implement logic to return the Dimona data
);
}
}
// Declare a Dimona
Dimona::declare($employment);
// Use a specific client
Dimona::client('default')->declare($employment);
use Hyperlab\Dimona\Events\DimonaPeriodCreated;
// Listen for the event
Event::listen(function (DimonaPeriodCreated $event) {
$dimonaPeriod = $event->dimonaPeriod;
// Your code here
});
use Hyperlab\Dimona\Events\DimonaPeriodStateUpdated;
// Listen for the event
Event::listen(function (DimonaPeriodStateUpdated $event) {
$dimonaPeriod = $event->dimonaPeriod;
// Your code here
});
use Hyperlab\Dimona\Tests\Mocks\MockDimonaApiClient;
// Create a mock client
$mock = new MockDimonaApiClient();
// Mock responses
$mock
->mockCreateDeclaration('test-reference')
->mockGetDeclaration('test-reference', 'A')
->register();
// Now any code that uses DimonaApiClient will use your mock