The SDK follows the same naming conventions as the PERSCOM API. The examples below demonstrate common operations that apply to all available resources.
// 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();
The PERSCOM SDK throws exceptions when an API error occurs. Catch these exceptions with a standard try/catch block. For a more elegant approach, consider using the promise-based approach.
try { $perscom = new PerscomConnection('YOUR_API_KEY'); $response = $perscom->users()->all()->json();} catch (AuthenticationException $exception) { Log::error('The provided API key is invalid');}