In this release, we have added support for multiple currencies; our API no longer assumes you are a resident of the UK. We are starting with GBP, USD and EUR; we will add support for other currencies as necessary.
- We have updated the API to support multiple currencies, we are starting with GBP, USD and EUR.
- We have added a
/currencies route to detail the supported currencies.
- We have increased the scope of our development test suite, specifically with regards to summaries.
- We have added a
/queue route to show the number of jobs in the queue.
- We have updated our item collections. If the
item type includes a monetary value, a currency object will be part of the response.
- We have updated the relevant item POSTs,
currency_id is now required.
- We have updated the relevant item PATCHes, `currency_id is an allowable field.
- We have updated our item summaries, the format of the response summary objects supports multiple currencies if necessary.
- We have updated our resource type item summaries, the format of the response summary objects supports multiple currencies if necessary.
For this release, we fix a couple of nasty bugs which are causing our cache invalidation to fail.
- We have changed the cache which gets cleared when we create or delete a resource.
- We have added a delay for the job which clears the cache on creation or deletion of a resource type and resource.
- We have corrected a type error; the permitted user check fails because of a type error.
In this release, we move cache invalidation requests to a separate process. We have decided to utilise Laravel queues, so far, the API is more performant, and the minor delay in clearing cache is not causing any issues.
- We have added support for queues; we clear all cache via queues.
- We have updated all our management controllers, we add a job to the queue rather than clearing the necessary cache synchronously.
- We have added the Postman collection link to the menu and renamed the documentation button.
- We have updated our README and included details on how to start the queue.
- We have corrected a couple of minor coding issues, unused parameters etc.
- We have updated our changelog, small spelling error.
- We have updated our controllers and added missing return statements.
In this release we fix a few small bugs and make another tiny change to out cache management system. For the next release we are going to move all cache clear requests to queues.
- We have added additional tests to our POSTMAN test collection to ensure allowed values exist where expected.
- We have updated our OPTIONS responses for summary controllers; where relevant, and we show the allowed values for a parameter or field.
- We have updated our back-end dependencies.
- We have updated our OPTIONS requests; in some cases, we were not showing allowed values for POST fields and GET parameters.
- We have tweaked our cache query; we use UNIX_TIMESTAMP() for comparison.
- We have removed a unique index from the
- We have updated the OPTIONS response for the
resource-types collection; we show the allowed values for the
In this release, we have reworked the majority of the code responsible for handling the different
item type. As we added additional
item types, it became clear we had a problem. We have reworked the system to be more configuration driven ready for version 3 of the API.
- We have reworked our item configuration; we are moving away from multiple item type classes and moving towards a configuration based setup.
- We have updated web.config; our server will not serve static JSON files.
- We have updated our back-end dependencies.
- We will no longer send request error mails for 404s; the number of emails is getting out of hand.
- We have updated our cache manager; some endpoints will only ever have a public cache, never a private cache.
- We have fixed a small bug when creating items of type ‘simple-item’ and ‘simple-expense’; we are not setting a date for ‘created_at`.
- We have tweaked our cache management system; our system will not create a private cache for authenticated users when they are looking at public endpoints for which they have no permissions.
- We have updated the allowed values for some OPTIONS requests; the allowed values are sometimes not displaying.
- We have made a minor tweak to the query for selecting cache keys.
For this release, we are continuing to pick up all the small issues from the backlog. The next couple of releases are going to add some pretty significant features, so we are continuing to ensure our API is stable.
- We have added the ability to exclude public resource types; to exclude public resource types include `exclude-public=1` in your request URIs.
- We have added support for database transactions; if we are modifying more than one table, we use database transactions.
- We have added a route to show the number of cached keys for the authenticated user and then optionally delete.
- We have included the schema files for the API. The schema files are accessible at `/api/schema/[type]`.
- We have reworked our Option responses; we have moved the code from the controllers ready for the creation of a new package/library.
- We have removed some duplication in our controllers, fetching dynamic data for Options requests and validation responses is simpler.
- We have updated all manage controllers; we make use of the existing`user_id` property if we need a `user_id`.
- We have reworked how we are clearing cache; we clear the cache for all permitted users when any user makes a cache clearing change.
- We have fixed a couple of instances where we are not passing ids through our hashers.
- We have fixed the include category and subcategory objects in the resource type items collection.
- We have fixed a couple of transformers; we were not correctly formatting totals.
- We have corrected not found calls; in some cases, we were showing error messages on our live environment that we don’t want to show.
- We have fixed the allowed values subcategories array; when we show the allowed values array with a validation error, the collection will have values.
- We have reworked all our deletes; in some cases, we were possibly creating null references.
- We have moved a call to fetch a config value; the function call is inside a loop which is a performance issue.
- We have updated the item type models’: the `updated_at` and `created_at` come from the relevant item type model.
- We have removed all API request logging; the request logging isn’t adding any value data that we can’t get via other means.
In this release, we add the views that exist on the website but not the app, category and annual views. We also fixed a couple of nasty bugs.
- We have added a category and subcategory summary at the resource type and resource level if the item type supports assigning categories.
- We have added an annual and monthly summary at the resource type and resource level if the item type supports an ‘effective date’ or similar.
- We have tweaked the generated dates for our summary ranges; we use months and years to create the ranges rather than fixed numbers of days.
- We have updated the add resource controls; the add resource controls will now only display on the dashboard and at the resource type level.
- We have tweaked the spacing between ‘dashboards’; the gaps were a little too large.
- We have tweaked our design; our design was a little too bubbly; there is nothing wrong with corners.
- We have removed inline styles.
- We have reworked the code to fetch the items at a resource and resource type level; we have moved some of the logic into the `Requests` class.
- We have updated our Roadmap.
- The delete action for resource types with item type simple-expense and simple-item no longer 404s; we implemented the resource version of tables.
- We have updated the related expenses and items which display on an item page; the category and subcategory ids, the category ids are missing from the request URIs.
In this release, we add a header to allow local caching to be ignored and we continue refactoring and fixing.
- We have added support for an `X-Skip-Cache` request header; If you include the header with your request we will skip response caching and fetch live values, please use this with care.
- We have added separate links for the documentation and example page and the postman collection.
- We have simplified our `\Model\Transformer` classes and made it possible to alter the returned data format.
- We have added `public` as a sorting option for resource types.
- We have reworked our pagination class; we have moved it to a new workspace and also improved how it works.
- We have moved our `Hash` class; the `Hash` class now lives in the `Request` namespace.
- We have moved our `ModelUtility` class: the `ModelUtility` class now lives in the `Models` namespace.
- We have updated the indexes in our `Hash` request class; the indexes are consistent with the rest of the app.
- We have updated our pagination helper to include any defined filtering parameters.
- We have corrected pagination calls in all our controllers; we now include all possible request parameters.
- We have corrected calls to clear public caches; we were comparing different types.
In this release, we add a documentation and examples page and start refactoring.
- We have added a documentation page; the documentation page links to the API documentation and includes a couple of examples.
- We have updated the example ENV file.
- We have renamed a couple of our helper conversion/validation classes and moved them to a new namespace.
- We have made a minor content tweak on the landing page; the documentation button is in another section.
- We have updated and relocated our validation classes; the validation classes are now part of the `App\Request\Validate` namespace.
- We have reworked our summary controllers; we have removed some code duplication and added additional error checking.
- Incorrectly assuming the result will be an array with at least one value.
In this release, we switch our caching provider to Redis.