First, install the package through composer:
composer require statikbe/udb-helpers
Then you can instanciate the EntryAPI class with the following parameters:
use statikbe\udb\EntryAPI;
use statikbe\udb\Environments;
$udb = new EntryAPI(
getenv("UDB_KEY"), // API key
'/var/www/path/to/your/jwt/token.json', // Path to where you're JWT token will be stored
Environments::PROD // The package includes an enum for that sets endpoints based in environment
);
To authenticate with UDB, you'll need a JWT token. The url from which you get that token can be generate with the following command:
$url = $udb->api->generalJwtUrl();
echo $url;
exit;
The code above will echo a URL. Paste that URL in a browser window, then you'll be prompted to log in with your UiT-ID. After logging in you'll see a blank screen with "An internal server error occurred".
You can find the access token and the refresh token in the url of that page.
Save both tokens in the json file the specified above, formatted like this:
{
"accessToken": "",
"refreshToken": ""
}
Once you've authenticated with the API, you can use the following functions:
$udb->searchPlaces([]);
The function takes on array of potential search parameters, those can be found here
$udb->getPlace($placeId);
The data passed should be an array, with fields that match the place model.
$udb->createPlace($data);
$udb->searchOrganizers([]);
The function takes on array of potential search parameters, those can be found here
$udb->getOrganizer($organizerId);
The data passed should be an array, with fields that match the organizer model.
$udb->createOrganizer($data);
The data passed should be an array, with fields that match the event model.
$udb->createEvent($data);
The data passed should be an array, with fields that match the event model.
$udb->updateEvent($eventId, $data);
The data passed should be an array, with fields that match the workflowStatus model.
$udb->updateWorkflowStatus($eventId, $data);
The data passed should be an array, with fields that match the workflowStatus model.
$udb->updatePlaceWorkflowStatus($eventId, $data);
// More to be added as we further develop this package.