vuestorefront / vue-storefront-api

Vue.js storefront for Magento2 (and not only) - data backend
https://www.vuestorefront.io
MIT License
348 stars 338 forks source link

Bugfix: Image file cache throws unhandled error if image not exists #580

Open didkan opened 2 years ago

didkan commented 2 years ago

This only occurs when config.imegable.caching.active === true.

If a product image does not exists on the platform/backend the local image action will return empty. The image file cache will still try to cache the result but fail, throwing an exception that will not be handled

This PR will add and error state to the imageAction and only cache the image if there is no error raised, thus preventing the unhandled error. I thought it would be better to not even try to cache if we know the is nothing to cache instead of just adding try/catch around the cache.save() statement.

I also created a specific edge case to forward the 404 not found status when the image is missing. I also changed the general image error status code from 400 to 500, because I thought it was more appropriate since it indicates an error with the server response and not an issue with the request.