Repository navigation
v1.4.0
Support for the nine new endpoints in customer API spec v0.19571_89862c247_20260915
New APIs
- Barcode lookup:
objects->getByBarcode()safely URL-encodes raw scancodes and supports archived objects. - Resource history: paginated
history()methods on objects, rooms, locations, persons, tasks, and rentals, withHistoryListOptionsand pagination metadata. Non-object resources expose typed history entries; object history preserves dynamic event payloads. - PDF reports:
reports->listTemplates()returns available templates, andreports->create(new CreateReportRequest(...))returns binary PDF data in the requested object order.
Compatibility and fixes
- Accept flat and
{uuid, fields}responses for persons, rooms, and locations while preserving custom fields. - Support both
person_uuidanduuidaliases, preferring a non-empty legacy identifier. - Add
ApiException::isFeatureInactive()to distinguish explicit inactive-feature responses from permission denials. - Gracefully skip rental history in the demo and new integration coverage when the API explicitly reports an inactive rentals feature. Unexpected errors remain failures.
Documentation and verification
- Updated README and end-to-end demo covering the new APIs.
- 279 tests passed, 1,006 assertions, no failures or skips: 239 unit tests and 40 live integration tests on PHP 8.5.10.
- Live demo completed successfully, including PDF generation, resource history, CRUD flows, file attachments, and authentication cleanup.
- Disabled-feature handling covered with mocked responses; the live instance has rentals enabled.
- PHP syntax checks passed. The merged main tree matches the tested revision.
Pull request: #7
Full changelog: v1.3.0...v1.4.0