Skip to content

Latest commit

 

History

History
164 lines (112 loc) · 6.22 KB

CHANGELOG.md

File metadata and controls

164 lines (112 loc) · 6.22 KB

Changelog

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)

[0.9.3] - 2021-04-14

Added

  • 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.

Changed

  • Switched from passing the apikey in query string to authorization header.

[0.9.2] - 2020-05-14

Added

  • Added new options maxAttemptsOnServerError and sleepTimeOnServerError.

Changed

  • Updated the Laravel Service Provider to use existing PSR-17/18 interface bindings, if any.

[0.9.1] - 2020-05-13

Fixed

  • Fixed generator introduced in 0.9.0.

[0.9.0] - 2020-05-13

Changed

  • 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.

[0.8.2] - 2019-10-29

Fixed

  • Fix for revertion of namespace removal in Alma Analytics API response (seems like the removal was just a mistake from Ex Libris)

[0.8.1] - 2019-10-01

Changed

  • Made the Client::buildUrl method public.

Fixed

  • 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

Added

  • Add portfolios and representations to Bib objects.

Changed

  • 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-guzzle to add a HTTP Factory for Guzzle.
  • Require PHP >= 7.1.

Fixed

  • Set MMS id on Bib object when initiated from SRU response.
  • Handle more error responses.

0.7.2 - 2018-11-09

Added

  • Added methods for retrieving task lists (lending requests and requested resources).

Fixed

  • Fixed retrieval of Holding records: #9

0.7.1 - 2018-10-23

Fixed

  • Fixed infinite loop in Users::search() when search result only contained contacts.

0.7.0 - 2018-09-02

Added

  • Added options limit and phrase to Users::search().
  • Added methods getBarcodes() and getUniversityIds() to UserIdentifiers to get all active values. These are accessible on the User object as $user->barcodes and $user->universityIds.
  • Added method Client::items->fromBarcode(...)
  • Added method Item::checkOut(), Item::loan(), Item:scanIn() and User::loans
  • Added method exists() to Bib, Holding, Item, User. If trying to get data from a non-existing resource, Scriptotek\Facade\Exception\ResourceNotFound is thrown.
  • Added array access to Bibs and Holdings.
  • Expanded the exception tree:
    • ClientException for all Facade Client errors
      • RequestFailed (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 the Report instead.
  • 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, Item and User.

Changed

  • BC: Changed the signature of Users::search(). Change users->search($query, $full, $batchSize) to users->search($query, ['expand' => $full, 'batchSize' => $batchSize]).
  • All exceptions now extend Scriptotek\Facade\Exception\ClientException.
  • BC: Moved the user identifier logic from the User class to a new UserIdentifiers class. The $user->barcode and $user->universityId magic 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 ResourceList base model into Model, LazyResource and LazyResourceList.
  • Removed the Bib::getXml() method in favour of a standardized getData() method part of the new Model base 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:columnHeading attributes so that columns can be accessed by name.
  • The post() and put() methods on Client now returns the response body.

Fixed

  • Ignore users without primary id in Users::search(). Previously, these that would crash the response handler.

0.6.1 - 2017-07-02

tbd.