From e783fbdb52678ae3816124f1c6f00f31f8b4bf0f Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Tue, 25 Apr 2023 12:11:51 +0200 Subject: [PATCH] Bug 34055: Add API client class to get items This patch add a new item-api-client.js API client to fetch items using our /items REST API endpoint. Test plan: Add the following two lines to one of the existing Vue component (in data() for instance) and hit the view that is using it. let client = APIClient.item client.items.getAll().then((items) => console.log(items)) Notice that you see all the items in the console. Sponsored-by: BULAC - http://www.bulac.fr/ --- .../prog/js/vue/fetch/api-client.js | 2 ++ .../prog/js/vue/fetch/item-api-client.js | 25 +++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 koha-tmpl/intranet-tmpl/prog/js/vue/fetch/item-api-client.js diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/api-client.js b/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/api-client.js index 2c17ef443fa..0605f5ffa31 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/api-client.js +++ b/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/api-client.js @@ -2,6 +2,7 @@ import ERMAPIClient from "./erm-api-client"; import PatronAPIClient from "./patron-api-client"; import AcquisitionAPIClient from "./acquisition-api-client"; import AVAPIClient from "./authorised-values"; +import ItemAPIClient from "./item-api-client"; import SysprefAPIClient from "./system-preferences-api-client"; export const APIClient = { @@ -9,5 +10,6 @@ export const APIClient = { patron: new PatronAPIClient(), acquisition: new AcquisitionAPIClient(), authorised_values: new AVAPIClient(), + item: new ItemAPIClient(), sysprefs: new SysprefAPIClient(), }; diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/item-api-client.js b/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/item-api-client.js new file mode 100644 index 00000000000..2ed25f7f997 --- /dev/null +++ b/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/item-api-client.js @@ -0,0 +1,25 @@ +import HttpClient from "./http-client"; + +export class ItemAPIClient extends HttpClient { + constructor() { + super({ + baseURL: "/api/v1/", + }); + } + + get items() { + return { + getAll: (query, params) => + this.get({ + endpoint: "items?" + + new URLSearchParams({ + _per_page: -1, + ...(query && { q: JSON.stringify(query) }), + }), + ...(params) + }), + }; + } +} + +export default ItemAPIClient; -- 2.25.1