All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
(Nothing yet)
- Added support for setting a custom entry point URL, so it's possible to connect to the API through a proxy.
- Added support for adding custom request headers.
- Switched from passing the apikey in query string to authorization header.
- Added new options
maxAttemptsOnServerErrorandsleepTimeOnServerError.
- Updated the Laravel Service Provider to use existing PSR-17/18 interface bindings, if any.
- Fixed generator introduced in 0.9.0.
- Breaking change: The Analytics Report iterator was changed to a generator to reduce memory usage when iterating over large reports. Results are now thrown away after they have been yieleded. This is a breaking change since count() is no longer supported.
- Fix for revertion of namespace removal in Alma Analytics API response (seems like the removal was just a mistake from Ex Libris)
- Made the
Client::buildUrlmethod public.
- URL encode user IDs in URLs (since Alma user IDs can contain any Unicode character).
- Added extra type check in error response handling
- Docs: Fix "Item by barcode" anchor (#14)
- Fix for sudden namespace removal in Alma Analytics API response
0.8.0 - 2019-04-08
- Add portfolios and representations to Bib objects.
- Update scriptotek/marc to version 2.0. Please see the corresponding CHANGELOG for information about changes that might break your app if you work with MARC records.
- Update from HTTPlug to PSR-17/PSR-18 HTTP discovery.
Note that a HTTP factory implementation is now required.
Run
composer require http-interop/http-factory-guzzleto add a HTTP Factory for Guzzle. - Require PHP >= 7.1.
- Set MMS id on Bib object when initiated from SRU response.
- Handle more error responses.
0.7.2 - 2018-11-09
- Added methods for retrieving task lists (lending requests and requested resources).
- Fixed retrieval of Holding records: #9
0.7.1 - 2018-10-23
- Fixed infinite loop in
Users::search()when search result only contained contacts.
0.7.0 - 2018-09-02
- Added options
limitandphrasetoUsers::search(). - Added methods
getBarcodes()andgetUniversityIds()toUserIdentifiersto get all active values. These are accessible on theUserobject as$user->barcodesand$user->universityIds. - Added method
Client::items->fromBarcode(...) - Added method
Item::checkOut(),Item::loan(),Item:scanIn()andUser::loans - Added method
exists()toBib,Holding,Item,User. If trying to get data from a non-existing resource,Scriptotek\Facade\Exception\ResourceNotFoundis thrown. - Added array access to
BibsandHoldings. - Expanded the exception tree:
ClientExceptionfor all Facade Client errorsRequestFailed(new) for 4xx errors.$e->getMessage()returns the error message from the server.InvalidApiKey(new)ResourceNotFound(new) when a request resource was not found.InvalidQuery(new) when the query was not understood by the server. Currently only used by the users api.
- Added interface to get libraries (
$client->libraries) and locations ($client->libraries[$libraryCode]->locations). - Added item checkout and scan-in.
- Analytics: The
getRows()method is deprecated. Iterate over theReportinstead. - Made package auto-discoverable in Laravel 5.5+.
- Added helper method
Users::findOne()to get the first match from a search. - Added support for retrieving user requests from
Bib,ItemandUser.
- BC: Changed the signature of
Users::search(). Changeusers->search($query, $full, $batchSize)tousers->search($query, ['expand' => $full, 'batchSize' => $batchSize]). - All exceptions now extend
Scriptotek\Facade\Exception\ClientException. - BC: Moved the user identifier logic from the
Userclass to a newUserIdentifiersclass. The$user->barcodeand$user->universityIdmagic properties work as before, but$user->getBarcode(),$user->getUniversityId(),$user->getIdOfType(...)and$user->getIds()must now be called as$user->identifiers->getBarcode(),$user->identifiers->getUniversityId(),$user->identifiers->firstOfType(...)and$user->identifiers->all(). All methods now return only identifiers with status 'ACTIVE' by default. Removed the$user->hasFullRecord()method. - Replaced/split the
ResourceListbase model intoModel,LazyResourceandLazyResourceList. - Removed the
Bib::getXml()method in favour of a standardizedgetData()method part of the newModelbase model. - Removed
$client->bibs->getHolding($mmsId, $holdingId), please use$client->bibs[$mmsId]->holdings[$holdingId]instead. It's lazy-loaded, so there's no performance drawback of the new interface. - Analytics reports: Parses the new
saw-sql:columnHeadingattributes so that columns can be accessed by name. - The
post()andput()methods onClientnow returns the response body.
- Ignore users without primary id in
Users::search(). Previously, these that would crash the response handler.
0.6.1 - 2017-07-02
tbd.