// The following are examples on the user resource, but the same principles
// can be applied to any PERSCOM resource.
$perscom = new PerscomConnection('YOUR_API_KEY');
// Get a list of a specific resource
$response = $perscom->users()->all();
// Get a specific resource
$response = $perscom->users()->get(id: 1);
// Create a resource
$response = $perscom->users()->create(data: [
'name' => 'User 1',
'email' => 'user1@email.com'
]);
// Update a resource
$response = $perscom->users()->update(id: 1, data: [
'name' => 'User 1 New Name'
]);
// Delete a resource
$response = $perscom->users()->delete(id: 1);
// Search for a resource
$response = $perscom->users()->search(
value: 'foobar',
sort: new SortObject('first_name', 'asc'),
filter: new FilterObject('created_at', '<', '2024-01-01')
);
// Batch create a resource
$response = $perscom->users()->batchCreate([
new ResourceObject(data: [
'name' => 'User 1',
'email' => 'user1@email.com'
]),
new ResourceObject(data: [
'name' => 'User 2',
'email' => 'user2@email.com'
])
]);
// Batch update a resource
$response = $perscom->users()->batchUpdate([
new ResourceObject(id: 1, data: [
'name' => 'User 1 New Name'
]),
new ResourceObject(id: 2, data: [
'name' => 'User 2 New Name'
])
]);
// Batch delete a resource
$response = $perscom->users()->batchDelete([
new ResourceObject(id: 1),
new ResourceObject(id: 2)
]);
// Uploading an attachment
$response = $perscom->users()->attachments(id: 1)->create(data: [
'name' => 'Attachment 1',
'file' => fopen('/../file.pdf', 'r')
]);
// Other examples
$response = $perscom->users()->profile_photo(id: 1)->create(filePath: 'image.jpg');
$response = $perscom->users()->assignment_records(id: 1)->delete();
// Parse the response into a usable array
$data = $response->json();