From b654082c4026834143ac61ad300213197a8733de Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Tue, 21 Mar 2023 09:00:10 +0100 Subject: [PATCH] Bug 33289: Add API client class to interact with svc/config/systempreferences On bug 30708 we will need to modify sysprefs from the UI (Vue app), it could be useful for other developments as well and so it is moved on its own bug report. Test plan: It can be tested independently of bug 30708 using the following code: const client = APIClient.sysprefs client.sysprefs .update( "CardnumberLength", "42" ) Sponsored-by: BULAC - http://www.bulac.fr/ Signed-off-by: Pedro Amorim Signed-off-by: Martin Renvoize --- .../prog/js/vue/fetch/api-client.js | 2 ++ .../fetch/system-preferences-api-client.js | 25 +++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 koha-tmpl/intranet-tmpl/prog/js/vue/fetch/system-preferences-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 5c3f8535e2..2c17ef443f 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,10 +2,12 @@ import ERMAPIClient from "./erm-api-client"; import PatronAPIClient from "./patron-api-client"; import AcquisitionAPIClient from "./acquisition-api-client"; import AVAPIClient from "./authorised-values"; +import SysprefAPIClient from "./system-preferences-api-client"; export const APIClient = { erm: new ERMAPIClient(), patron: new PatronAPIClient(), acquisition: new AcquisitionAPIClient(), authorised_values: new AVAPIClient(), + sysprefs: new SysprefAPIClient(), }; diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/system-preferences-api-client.js b/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/system-preferences-api-client.js new file mode 100644 index 0000000000..1e4cd3f7a7 --- /dev/null +++ b/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/system-preferences-api-client.js @@ -0,0 +1,25 @@ +import HttpClient from "./http-client"; + +export class SysprefAPIClient extends HttpClient { + constructor() { + super({ + baseURL: "/cgi-bin/koha/svc/config/systempreferences", + }); + } + + get sysprefs() { + return { + update: (variable, value) => + this.post({ + endpoint: "", + body: "pref_%s=%s".format(variable, value), + headers: { + "Content-Type": + "application/x-www-form-urlencoded;charset=utf-8", + }, + }), + }; + } +} + +export default SysprefAPIClient; -- 2.40.0