From aa2f8f50cdbbe1ffe5dce2917de70bb290de6283 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Wed, 29 Jan 2025 17:04:08 +0100 Subject: [PATCH] Bug 38993: Merge 'fetch' directories Why does not alias @fetch work?? --- .../prog/en/modules/admin/didyoumean.tt | 2 +- .../{vue => }/fetch/acquisition-api-client.js | 13 +- .../fetch/additional-fields-api-client.js | 12 +- .../intranet-tmpl/prog/js/fetch/api-client.js | 26 ++-- .../js/fetch/article-request-api-client.js | 20 ++- .../js/fetch/authorised-value-api-client.js | 31 ----- .../js/fetch/authorised-values-api-client.js | 43 +++++++ .../prog/js/fetch/cataloguing-api-client.js | 12 +- .../prog/js/fetch/circulation-api-client.js | 16 +-- .../prog/js/fetch/club-api-client.js | 16 +-- .../prog/js/fetch/cover-image-api-client.js | 10 +- .../prog/js/{vue => }/fetch/erm-api-client.js | 120 +++++++++--------- .../js/{vue => }/fetch/item-api-client.js | 10 +- .../prog/js/fetch/localization-api-client.js | 14 +- .../prog/js/fetch/patron-api-client.js | 30 ++--- .../fetch/preservation-api-client.js | 56 ++++---- .../prog/js/fetch/recall-api-client.js | 18 ++- .../fetch/record-sources-api-client.js | 20 ++- .../js/fetch/system-preferences-api-client.js | 19 ++- .../prog/js/fetch/ticket-api-client.js | 14 +- .../prog/js/pages/preferences.js | 2 +- .../prog/js/vue/fetch/api-client.js | 38 +++--- .../vue/fetch/authorised-values-api-client.js | 30 ----- .../prog/js/vue/fetch/patron-api-client.js | 20 --- .../fetch/system-preferences-api-client.js | 33 ----- webpack.config.js | 5 + 26 files changed, 263 insertions(+), 367 deletions(-) rename koha-tmpl/intranet-tmpl/prog/js/{vue => }/fetch/acquisition-api-client.js (64%) rename koha-tmpl/intranet-tmpl/prog/js/{vue => }/fetch/additional-fields-api-client.js (53%) delete mode 100644 koha-tmpl/intranet-tmpl/prog/js/fetch/authorised-value-api-client.js create mode 100644 koha-tmpl/intranet-tmpl/prog/js/fetch/authorised-values-api-client.js rename koha-tmpl/intranet-tmpl/prog/js/{vue => }/fetch/erm-api-client.js (84%) rename koha-tmpl/intranet-tmpl/prog/js/{vue => }/fetch/item-api-client.js (67%) rename koha-tmpl/intranet-tmpl/prog/js/{vue => }/fetch/preservation-api-client.js (84%) rename koha-tmpl/intranet-tmpl/prog/js/{vue => }/fetch/record-sources-api-client.js (76%) delete mode 100644 koha-tmpl/intranet-tmpl/prog/js/vue/fetch/authorised-values-api-client.js delete mode 100644 koha-tmpl/intranet-tmpl/prog/js/vue/fetch/patron-api-client.js delete mode 100644 koha-tmpl/intranet-tmpl/prog/js/vue/fetch/system-preferences-api-client.js diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/didyoumean.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/didyoumean.tt index 270e868b095..e5b1d4f1e51 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/didyoumean.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/didyoumean.tt @@ -116,7 +116,7 @@ function yesimeant() { var OPACdidyoumean = serialize_plugins('opac'); - const client = APIClient.syspref; + const client = APIClient.sysprefs; client.sysprefs.update('OPACdidyoumean', OPACdidyoumean).then( success => { alert(_("Successfully saved configuration")); diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/acquisition-api-client.js b/koha-tmpl/intranet-tmpl/prog/js/fetch/acquisition-api-client.js similarity index 64% rename from koha-tmpl/intranet-tmpl/prog/js/vue/fetch/acquisition-api-client.js rename to koha-tmpl/intranet-tmpl/prog/js/fetch/acquisition-api-client.js index 72f1a1d79c8..4fbe75764dd 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/acquisition-api-client.js +++ b/koha-tmpl/intranet-tmpl/prog/js/fetch/acquisition-api-client.js @@ -1,16 +1,15 @@ -import HttpClient from "./http-client"; - -export class AcquisitionAPIClient extends HttpClient { - constructor() { - super({ - baseURL: "/api/v1/acquisitions/", +export class AcquisitionAPIClient { + constructor(HttpClient) { + this.httpClient = new HttpClient({ + baseURL: "/api/v1/acquisitions/", }); + } get vendors() { return { getAll: (query, params) => - this.getAll({ + this.httpClient.getAll({ endpoint: "vendors", query, params, diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/additional-fields-api-client.js b/koha-tmpl/intranet-tmpl/prog/js/fetch/additional-fields-api-client.js similarity index 53% rename from koha-tmpl/intranet-tmpl/prog/js/vue/fetch/additional-fields-api-client.js rename to koha-tmpl/intranet-tmpl/prog/js/fetch/additional-fields-api-client.js index 19b3895cb25..3d8752b8bad 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/additional-fields-api-client.js +++ b/koha-tmpl/intranet-tmpl/prog/js/fetch/additional-fields-api-client.js @@ -1,16 +1,14 @@ -import HttpClient from "./http-client"; - -export class AdditionalFieldsAPIClient extends HttpClient { - constructor() { - super({ - baseURL: "/api/v1/extended_attribute_types", +export class AdditionalFieldsAPIClient { + constructor(HttpClient) { + this.httpClient = new HttpClient({ + baseURL: "/api/v1/extended_attribute_types", }); } get additional_fields() { return { getAll: resource_type => - this.get({ + this.httpClient.get({ endpoint: "?resource_type=" + resource_type, }), }; diff --git a/koha-tmpl/intranet-tmpl/prog/js/fetch/api-client.js b/koha-tmpl/intranet-tmpl/prog/js/fetch/api-client.js index 2551709c0cd..1faf8a9aca1 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/fetch/api-client.js +++ b/koha-tmpl/intranet-tmpl/prog/js/fetch/api-client.js @@ -1,6 +1,8 @@ /* keep tidy */ +import HttpClient from "./http-client.js"; + import ArticleRequestAPIClient from "./article-request-api-client.js"; -import AVAPIClient from "./authorised-value-api-client.js"; +import AVAPIClient from "./authorised-values-api-client.js"; import CataloguingAPIClient from "./cataloguing-api-client.js"; import CirculationAPIClient from "./circulation-api-client.js"; import ClubAPIClient from "./club-api-client.js"; @@ -12,15 +14,15 @@ import SysprefAPIClient from "./system-preferences-api-client.js"; import TicketAPIClient from "./ticket-api-client.js"; export const APIClient = { - article_request: new ArticleRequestAPIClient(), - authorised_value: new AVAPIClient(), - cataloguing: new CataloguingAPIClient(), - circulation: new CirculationAPIClient(), - club: new ClubAPIClient(), - cover_image: new CoverImageAPIClient(), - localization: new LocalizationAPIClient(), - patron: new PatronAPIClient(), - recall: new RecallAPIClient(), - syspref: new SysprefAPIClient(), - ticket: new TicketAPIClient(), + article_request: new ArticleRequestAPIClient(HttpClient), + authorised_values: new AVAPIClient(HttpClient), + cataloguing: new CataloguingAPIClient(HttpClient), + circulation: new CirculationAPIClient(HttpClient), + club: new ClubAPIClient(HttpClient), + cover_image: new CoverImageAPIClient(HttpClient), + localization: new LocalizationAPIClient(HttpClient), + patron: new PatronAPIClient(HttpClient), + recall: new RecallAPIClient(HttpClient), + sysprefs: new SysprefAPIClient(HttpClient), + ticket: new TicketAPIClient(HttpClient), }; diff --git a/koha-tmpl/intranet-tmpl/prog/js/fetch/article-request-api-client.js b/koha-tmpl/intranet-tmpl/prog/js/fetch/article-request-api-client.js index 3afc9a3cf8f..87b711e30a3 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/fetch/article-request-api-client.js +++ b/koha-tmpl/intranet-tmpl/prog/js/fetch/article-request-api-client.js @@ -1,11 +1,9 @@ -/* keep tidy */ -import HttpClient from "./http-client.js"; +export class ArticleRequestAPIClient { + constructor(HttpClient) { + this.httpClient = new HttpClient({ -export class ArticleRequestAPIClient extends HttpClient { - constructor() { - super({ baseURL: "/cgi-bin/koha/svc/article_request", - headers: { + headers: { "Content-Type": "application/x-www-form-urlencoded;charset=utf-8", }, @@ -15,22 +13,22 @@ export class ArticleRequestAPIClient extends HttpClient { get articleRequests() { return { process: id => - this.post({ + this.httpClient.post({ endpoint: "", body: "id=%s&op=%s".format(id, "cud-process"), }), complete: id => - this.post({ + this.httpClient.post({ endpoint: "", body: "id=%s&op=%s".format(id, "cud-complete"), }), pending: id => - this.post({ + this.httpClient.post({ endpoint: "", body: "id=%s&op=%s".format(id, "cud-pending"), }), update_urls: (id, urls) => - this.post({ + this.httpClient.post({ endpoint: "", body: "id=%s&urls=%s&op=%s".format( id, @@ -39,7 +37,7 @@ export class ArticleRequestAPIClient extends HttpClient { ), }), update_library_id: (id, library_id) => - this.post({ + this.httpClient.post({ endpoint: "", body: "id=%s&library_id=%s&op=%s".format( id, diff --git a/koha-tmpl/intranet-tmpl/prog/js/fetch/authorised-value-api-client.js b/koha-tmpl/intranet-tmpl/prog/js/fetch/authorised-value-api-client.js deleted file mode 100644 index c6465419486..00000000000 --- a/koha-tmpl/intranet-tmpl/prog/js/fetch/authorised-value-api-client.js +++ /dev/null @@ -1,31 +0,0 @@ -/* keep tidy */ -import HttpClient from "./http-client.js"; - -export class AVAPIClient extends HttpClient { - constructor() { - super({ - baseURL: "/cgi-bin/koha/svc/authorised_values", - headers: { - "Content-Type": - "application/x-www-form-urlencoded;charset=utf-8", - }, - }); - } - - get values() { - return { - create: value => - this.post({ - endpoint: "", - body: "category=%s&value=%s&description=%s&opac_description=%s".format( - encodeURIComponent(value.category), - encodeURIComponent(value.value), - encodeURIComponent(value.description), - encodeURIComponent(value.opac_description) - ), - }), - }; - } -} - -export default AVAPIClient; diff --git a/koha-tmpl/intranet-tmpl/prog/js/fetch/authorised-values-api-client.js b/koha-tmpl/intranet-tmpl/prog/js/fetch/authorised-values-api-client.js new file mode 100644 index 00000000000..9aededf7f87 --- /dev/null +++ b/koha-tmpl/intranet-tmpl/prog/js/fetch/authorised-values-api-client.js @@ -0,0 +1,43 @@ +export class AVAPIClient { + constructor(HttpClient) { + this.httpClient = new HttpClient({ + baseURL: "", + }); + } + + get values() { + return { + get: category => + this.httpClient.get({ + endpoint: `/api/v1/authorised_value_categories/${category}/authorised_values`, + }), + getCategoriesWithValues: cat_array => + this.httpClient.get({ + endpoint: + '/api/v1/authorised_value_categories' + + '?q={"me.category_name":[' + + cat_array.join(", ") + + "]}", + headers: { + "x-koha-embed": "authorised_values", + }, + }), + create: value => + this.httpClient.post({ + endpoint: "/cgi-bin/koha/svc/authorised_values", + body: "category=%s&value=%s&description=%s&opac_description=%s".format( + encodeURIComponent(value.category), + encodeURIComponent(value.value), + encodeURIComponent(value.description), + encodeURIComponent(value.opac_description) + ), + headers: { + "Content-Type": + "application/x-www-form-urlencoded;charset=utf-8", + }, + }), + }; + } +} + +export default AVAPIClient; diff --git a/koha-tmpl/intranet-tmpl/prog/js/fetch/cataloguing-api-client.js b/koha-tmpl/intranet-tmpl/prog/js/fetch/cataloguing-api-client.js index 7bae56d62a5..d14e30efaa2 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/fetch/cataloguing-api-client.js +++ b/koha-tmpl/intranet-tmpl/prog/js/fetch/cataloguing-api-client.js @@ -1,9 +1,7 @@ /* keep tidy */ -import HttpClient from "./http-client.js"; - -export class CataloguingAPIClient extends HttpClient { - constructor() { - super({ +export class CataloguingAPIClient { + constructor(HttpClient) { + this.httpClient = new HttpClient({ baseURL: "/cgi-bin/koha/svc/", }); } @@ -11,7 +9,7 @@ export class CataloguingAPIClient extends HttpClient { get catalog_bib() { return { create: bib_info => - this.post({ + this.httpClient.post({ endpoint: "new_bib/?frameworkcode=%s".format( bib_info.frameworkcode ), @@ -21,7 +19,7 @@ export class CataloguingAPIClient extends HttpClient { }, }), update: bib_info => - this.post({ + this.httpClient.post({ endpoint: "bib/%s?frameworkcode=%s".format( bib_info.id, bib_info.frameworkcode diff --git a/koha-tmpl/intranet-tmpl/prog/js/fetch/circulation-api-client.js b/koha-tmpl/intranet-tmpl/prog/js/fetch/circulation-api-client.js index 4f32d5caa5c..17f489d20b8 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/fetch/circulation-api-client.js +++ b/koha-tmpl/intranet-tmpl/prog/js/fetch/circulation-api-client.js @@ -1,9 +1,7 @@ /* keep tidy */ -import HttpClient from "./http-client.js"; - -export class CirculationAPIClient extends HttpClient { - constructor() { - super({ +export class CirculationAPIClient { + constructor(HttpClient) { + this.httpClient = new HttpClient({ baseURL: "/cgi-bin/koha/svc/", }); } @@ -11,7 +9,7 @@ export class CirculationAPIClient extends HttpClient { get checkins() { return { create: checkin => - this.post({ + this.httpClient.post({ endpoint: "checkin", body: "itemnumber=%s&borrowernumber=%s&branchcode=%s&exempt_fine=%s&op=%s".format( checkin.item_id, @@ -31,7 +29,7 @@ export class CirculationAPIClient extends HttpClient { get checkouts() { return { renew: checkout => - this.post({ + this.httpClient.post({ endpoint: "renew", body: "itemnumber=%s&borrowernumber=%s&branchcode=%s&override_limit=%s".format( @@ -52,7 +50,7 @@ export class CirculationAPIClient extends HttpClient { }, }), mark_as_seen: checkout_id => - this.post({ + this.httpClient.post({ endpoint: "checkout_notes", body: "issue_id=%s&op=%s".format(checkout_id, "cud-seen"), headers: { @@ -61,7 +59,7 @@ export class CirculationAPIClient extends HttpClient { }, }), mark_as_not_seen: checkout_id => - this.post({ + this.httpClient.post({ endpoint: "checkout_notes", body: "issue_id=%s&op=%s".format( checkout_id, diff --git a/koha-tmpl/intranet-tmpl/prog/js/fetch/club-api-client.js b/koha-tmpl/intranet-tmpl/prog/js/fetch/club-api-client.js index a238da5a6bf..7537150694b 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/fetch/club-api-client.js +++ b/koha-tmpl/intranet-tmpl/prog/js/fetch/club-api-client.js @@ -1,9 +1,7 @@ /* keep tidy */ -import HttpClient from "./http-client.js"; - -export class ClubAPIClient extends HttpClient { - constructor() { - super({ +export class ClubAPIClient { + constructor(HttpClient) { + this.httpClient = new HttpClient({ baseURL: "/cgi-bin/koha/svc/club/", }); } @@ -11,7 +9,7 @@ export class ClubAPIClient extends HttpClient { get templates() { return { delete: template_id => - this.post({ + this.httpClient.post({ endpoint: "template/delete", body: "id=%s&op=%s".format(template_id, "cud-delete"), headers: { @@ -25,7 +23,7 @@ export class ClubAPIClient extends HttpClient { get clubs() { return { delete: club_id => - this.post({ + this.httpClient.post({ endpoint: "delete", body: "id=%s&op=%s".format(club_id, "cud-delete"), headers: { @@ -39,7 +37,7 @@ export class ClubAPIClient extends HttpClient { get enrollments() { return { cancel: enrollment_id => - this.post({ + this.httpClient.post({ endpoint: "cancel_enrollment", body: "id=%s&op=%s".format(enrollment_id, "cud-delete"), headers: { @@ -49,7 +47,7 @@ export class ClubAPIClient extends HttpClient { }), enroll: data => - this.post({ + this.httpClient.post({ endpoint: "enroll", body: "%s&op=%s".format( data, // Could do better, but too much work for now! diff --git a/koha-tmpl/intranet-tmpl/prog/js/fetch/cover-image-api-client.js b/koha-tmpl/intranet-tmpl/prog/js/fetch/cover-image-api-client.js index 6e1d73e42b1..d1ecda40b97 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/fetch/cover-image-api-client.js +++ b/koha-tmpl/intranet-tmpl/prog/js/fetch/cover-image-api-client.js @@ -1,9 +1,7 @@ /* keep tidy */ -import HttpClient from "./http-client.js"; - -export class CoverImageAPIClient extends HttpClient { - constructor() { - super({ +export class CoverImageAPIClient { + constructor(HttpClient) { + this.httpClient = new HttpClient({ baseURL: "/cgi-bin/koha/svc/cover_images", }); } @@ -11,7 +9,7 @@ export class CoverImageAPIClient extends HttpClient { get cover_images() { return { delete: image_id => - this.post({ + this.httpClient.post({ endpoint: "", body: "imagenumber=%s&op=%s".format(image_id, "cud-delete"), headers: { diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/erm-api-client.js b/koha-tmpl/intranet-tmpl/prog/js/fetch/erm-api-client.js similarity index 84% rename from koha-tmpl/intranet-tmpl/prog/js/vue/fetch/erm-api-client.js rename to koha-tmpl/intranet-tmpl/prog/js/fetch/erm-api-client.js index a5ff355cb19..b618e0d672b 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/erm-api-client.js +++ b/koha-tmpl/intranet-tmpl/prog/js/fetch/erm-api-client.js @@ -1,8 +1,6 @@ -import HttpClient from "./http-client"; - -export class ERMAPIClient extends HttpClient { - constructor() { - super({ +export class ERMAPIClient { + constructor(HttpClient) { + this.httpClient = new HttpClient({ baseURL: "/api/v1/erm/", }); } @@ -10,7 +8,7 @@ export class ERMAPIClient extends HttpClient { get config() { return { get: () => - this.get({ + this.httpClient.get({ endpoint: "config", }), }; @@ -19,7 +17,7 @@ export class ERMAPIClient extends HttpClient { get agreements() { return { get: id => - this.get({ + this.httpClient.get({ endpoint: "agreements/" + id, headers: { "x-koha-embed": @@ -27,27 +25,27 @@ export class ERMAPIClient extends HttpClient { }, }), getAll: (query, params) => - this.getAll({ + this.httpClient.getAll({ endpoint: "agreements", query, params, }), delete: id => - this.delete({ + this.httpClient.delete({ endpoint: "agreements/" + id, }), create: agreement => - this.post({ + this.httpClient.post({ endpoint: "agreements", body: agreement, }), update: (agreement, id) => - this.put({ + this.httpClient.put({ endpoint: "agreements/" + id, body: agreement, }), count: (query = {}) => - this.count({ + this.httpClient.count({ endpoint: "agreements?" + new URLSearchParams({ @@ -62,7 +60,7 @@ export class ERMAPIClient extends HttpClient { get licenses() { return { get: id => - this.get({ + this.httpClient.get({ endpoint: "licenses/" + id, headers: { "x-koha-embed": @@ -70,7 +68,7 @@ export class ERMAPIClient extends HttpClient { }, }), getAll: (query, params) => - this.getAll({ + this.httpClient.getAll({ endpoint: "licenses", query, params, @@ -79,21 +77,21 @@ export class ERMAPIClient extends HttpClient { }, }), delete: id => - this.delete({ + this.httpClient.delete({ endpoint: "licenses/" + id, }), create: license => - this.post({ + this.httpClient.post({ endpoint: "licenses", body: license, }), update: (license, id) => - this.put({ + this.httpClient.put({ endpoint: "licenses/" + id, body: license, }), count: (query = {}) => - this.count({ + this.httpClient.count({ endpoint: "licenses?" + new URLSearchParams({ @@ -108,7 +106,7 @@ export class ERMAPIClient extends HttpClient { get localPackages() { return { get: id => - this.get({ + this.httpClient.get({ endpoint: "eholdings/local/packages/" + id, headers: { "x-koha-embed": @@ -116,7 +114,7 @@ export class ERMAPIClient extends HttpClient { }, }), getAll: (query, params) => - this.getAll({ + this.httpClient.getAll({ endpoint: "eholdings/local/packages", query, params, @@ -125,21 +123,21 @@ export class ERMAPIClient extends HttpClient { }, }), delete: id => - this.delete({ + this.httpClient.delete({ endpoint: "eholdings/local/packages/" + id, }), create: local_package => - this.post({ + this.httpClient.post({ endpoint: "eholdings/local/packages", body: local_package, }), update: (local_package, id) => - this.put({ + this.httpClient.put({ endpoint: "eholdings/local/packages/" + id, body: local_package, }), count: (query = {}) => - this.count({ + this.httpClient.count({ endpoint: "eholdings/local/packages?" + new URLSearchParams({ @@ -154,28 +152,28 @@ export class ERMAPIClient extends HttpClient { get localTitles() { return { get: id => - this.get({ + this.httpClient.get({ endpoint: "eholdings/local/titles/" + id, headers: { "x-koha-embed": "resources,resources.package", }, }), delete: id => - this.delete({ + this.httpClient.delete({ endpoint: "eholdings/local/titles/" + id, }), create: local_package => - this.post({ + this.httpClient.post({ endpoint: "eholdings/local/titles", body: local_package, }), update: (local_package, id) => - this.put({ + this.httpClient.put({ endpoint: "eholdings/local/titles/" + id, body: local_package, }), count: (query = {}) => - this.count({ + this.httpClient.count({ endpoint: "eholdings/local/titles?" + new URLSearchParams({ @@ -185,12 +183,12 @@ export class ERMAPIClient extends HttpClient { }), }), import: body => - this.post({ + this.httpClient.post({ endpoint: "eholdings/local/titles/import", body, }), import_kbart: body => - this.post({ + this.httpClient.post({ endpoint: "eholdings/local/titles/import_kbart", body, }), @@ -200,7 +198,7 @@ export class ERMAPIClient extends HttpClient { get localResources() { return { get: id => - this.get({ + this.httpClient.get({ endpoint: "eholdings/local/resources/" + id, headers: { "x-koha-embed": "title,package,vendor", @@ -212,7 +210,7 @@ export class ERMAPIClient extends HttpClient { get EBSCOPackages() { return { get: id => - this.get({ + this.httpClient.get({ endpoint: "eholdings/ebsco/packages/" + id, headers: { "x-koha-embed": @@ -220,7 +218,7 @@ export class ERMAPIClient extends HttpClient { }, }), patch: (id, body) => - this.patch({ + this.httpClient.patch({ endpoint: "eholdings/ebsco/packages/" + id, body, }), @@ -230,7 +228,7 @@ export class ERMAPIClient extends HttpClient { get EBSCOTitles() { return { get: id => - this.get({ + this.httpClient.get({ endpoint: "eholdings/ebsco/titles/" + id, headers: { "x-koha-embed": "resources,resources.package", @@ -242,14 +240,14 @@ export class ERMAPIClient extends HttpClient { get EBSCOResources() { return { get: id => - this.get({ + this.httpClient.get({ endpoint: "eholdings/ebsco/resources/" + id, headers: { "x-koha-embed": "title,package,vendor", }, }), patch: (id, body) => - this.patch({ + this.httpClient.patch({ endpoint: "eholdings/ebsco/resources/" + id, body, }), @@ -259,31 +257,31 @@ export class ERMAPIClient extends HttpClient { get usage_data_providers() { return { get: id => - this.get({ + this.httpClient.get({ endpoint: "usage_data_providers/" + id, }), getAll: query => - this.getAll({ + this.httpClient.getAll({ endpoint: "usage_data_providers", query, query, }), delete: id => - this.delete({ + this.httpClient.delete({ endpoint: "usage_data_providers/" + id, }), create: usage_data_provider => - this.post({ + this.httpClient.post({ endpoint: "usage_data_providers", body: usage_data_provider, }), update: (usage_data_provider, id) => - this.put({ + this.httpClient.put({ endpoint: "usage_data_providers/" + id, body: usage_data_provider, }), process_SUSHI_response: (id, body) => - this.post({ + this.httpClient.post({ endpoint: "usage_data_providers/" + id + @@ -291,17 +289,17 @@ export class ERMAPIClient extends HttpClient { body: body, }), process_COUNTER_file: (id, body) => - this.post({ + this.httpClient.post({ endpoint: "usage_data_providers/" + id + "/process_COUNTER_file", body: body, }), test: id => - this.get({ + this.httpClient.get({ endpoint: "usage_data_providers/" + id + "/test_connection", }), count: (query = {}) => - this.count({ + this.httpClient.count({ endpoint: "usage_data_providers?" + new URLSearchParams({ @@ -316,11 +314,11 @@ export class ERMAPIClient extends HttpClient { get counter_files() { return { delete: id => - this.delete({ + this.httpClient.delete({ endpoint: "counter_files/" + id, }), count: (query = {}) => - this.count({ + this.httpClient.count({ endpoint: "counter_files?" + new URLSearchParams({ @@ -335,17 +333,17 @@ export class ERMAPIClient extends HttpClient { get default_usage_reports() { return { getAll: query => - this.get({ + this.httpClient.get({ endpoint: "default_usage_reports", query, }), create: default_usage_report => - this.post({ + this.httpClient.post({ endpoint: "default_usage_reports", body: default_usage_report, }), delete: id => - this.delete({ + this.httpClient.delete({ endpoint: "default_usage_reports/" + id, }), }; @@ -354,12 +352,12 @@ export class ERMAPIClient extends HttpClient { get usage_platforms() { return { getAll: query => - this.getAll({ + this.httpClient.getAll({ endpoint: "usage_platforms", query: query, }), count: (query = {}) => - this.count({ + this.httpClient.count({ endpoint: "usage_platforms?" + new URLSearchParams({ @@ -374,12 +372,12 @@ export class ERMAPIClient extends HttpClient { get usage_items() { return { getAll: query => - this.getAll({ + this.httpClient.getAll({ endpoint: "usage_items", query: query, }), count: (query = {}) => - this.count({ + this.httpClient.count({ endpoint: "usage_items?" + new URLSearchParams({ @@ -394,12 +392,12 @@ export class ERMAPIClient extends HttpClient { get usage_databases() { return { getAll: query => - this.getAll({ + this.httpClient.getAll({ endpoint: "usage_databases", query: query, }), count: (query = {}) => - this.count({ + this.httpClient.count({ endpoint: "usage_databases?" + new URLSearchParams({ @@ -414,12 +412,12 @@ export class ERMAPIClient extends HttpClient { get usage_titles() { return { getAll: query => - this.getAll({ + this.httpClient.getAll({ endpoint: "usage_titles", query: query, }), count: (query = {}) => - this.count({ + this.httpClient.count({ endpoint: "usage_titles?" + new URLSearchParams({ @@ -434,7 +432,7 @@ export class ERMAPIClient extends HttpClient { get counter_registry() { return { getAll: query => - this.getAll({ + this.httpClient.getAll({ endpoint: "counter_registry", query, }), @@ -443,7 +441,7 @@ export class ERMAPIClient extends HttpClient { get sushi_service() { return { getAll: query => - this.getAll({ + this.httpClient.getAll({ endpoint: "sushi_service", query, }), diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/item-api-client.js b/koha-tmpl/intranet-tmpl/prog/js/fetch/item-api-client.js similarity index 67% rename from koha-tmpl/intranet-tmpl/prog/js/vue/fetch/item-api-client.js rename to koha-tmpl/intranet-tmpl/prog/js/fetch/item-api-client.js index 0b32db44399..84b9b8c3704 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/item-api-client.js +++ b/koha-tmpl/intranet-tmpl/prog/js/fetch/item-api-client.js @@ -1,8 +1,6 @@ -import HttpClient from "./http-client"; - -export class ItemAPIClient extends HttpClient { - constructor() { - super({ +export class ItemAPIClient { + constructor(HttpClient) { + this.httpClient = new HttpClient({ baseURL: "/api/v1/", }); } @@ -10,7 +8,7 @@ export class ItemAPIClient extends HttpClient { get items() { return { getAll: (query, params, headers) => - this.getAll({ + this.httpClient.getAll({ endpoint: "items", query, params, diff --git a/koha-tmpl/intranet-tmpl/prog/js/fetch/localization-api-client.js b/koha-tmpl/intranet-tmpl/prog/js/fetch/localization-api-client.js index 4fbede4c676..18841edba9d 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/fetch/localization-api-client.js +++ b/koha-tmpl/intranet-tmpl/prog/js/fetch/localization-api-client.js @@ -1,9 +1,7 @@ /* keep tidy */ -import HttpClient from "./http-client.js"; - -export class LocalizationAPIClient extends HttpClient { - constructor() { - super({ +export class LocalizationAPIClient { + constructor(HttpClient) { + this.httpClient = new HttpClient({ baseURL: "/cgi-bin/koha/svc/localization", }); } @@ -11,7 +9,7 @@ export class LocalizationAPIClient extends HttpClient { get localizations() { return { create: localization => - this.post({ + this.httpClient.post({ endpoint: "", body: "entity=%s&code=%s&lang=%s&translation=%s".format( encodeURIComponent(localization.entity), @@ -25,7 +23,7 @@ export class LocalizationAPIClient extends HttpClient { }, }), update: localization => - this.put({ + this.httpClient.put({ endpoint: "", body: "id=%s&lang=%s&translation=%s".format( encodeURIComponent(localization.id), @@ -38,7 +36,7 @@ export class LocalizationAPIClient extends HttpClient { }, }), delete: id => - this.delete({ + this.httpClient.delete({ endpoint: "/?id=%s".format(id), headers: { "Content-Type": diff --git a/koha-tmpl/intranet-tmpl/prog/js/fetch/patron-api-client.js b/koha-tmpl/intranet-tmpl/prog/js/fetch/patron-api-client.js index a6825bd6bf8..835952242b3 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/fetch/patron-api-client.js +++ b/koha-tmpl/intranet-tmpl/prog/js/fetch/patron-api-client.js @@ -1,29 +1,15 @@ -/* keep tidy */ -import HttpClient from "./http-client.js"; - -export class PatronAPIClient extends HttpClient { - constructor() { - super({ - baseURL: "/cgi-bin/koha/svc/", +export class PatronAPIClient { + constructor(HttpClient) { + this.httpClient = new HttpClient({ + baseURL: "/api/v1/", }); } - get lists() { + get patrons() { return { - add_patrons: ({ patron_ids, list_id, new_list_name }) => - this.post({ - endpoint: "members/add_to_list", - body: "add_to_patron_list=%s&new_patron_list=%s&%s".format( - list_id, - new_list_name, - patron_ids - .map(id => "borrowernumber=%s".format(id)) - .join("&") - ), - headers: { - "Content-Type": - "application/x-www-form-urlencoded;charset=utf-8", - }, + get: id => + this.httpClient.get({ + endpoint: "patrons/" + id, }), }; } diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/preservation-api-client.js b/koha-tmpl/intranet-tmpl/prog/js/fetch/preservation-api-client.js similarity index 84% rename from koha-tmpl/intranet-tmpl/prog/js/vue/fetch/preservation-api-client.js rename to koha-tmpl/intranet-tmpl/prog/js/fetch/preservation-api-client.js index 3474facd6ce..e001e817204 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/preservation-api-client.js +++ b/koha-tmpl/intranet-tmpl/prog/js/fetch/preservation-api-client.js @@ -1,8 +1,6 @@ -import HttpClient from "./http-client"; - -export class PreservationAPIClient extends HttpClient { - constructor() { - super({ +export class PreservationAPIClient { + constructor(HttpClient) { + this.httpClient = new HttpClient({ baseURL: "/api/v1/preservation/", }); } @@ -10,7 +8,7 @@ export class PreservationAPIClient extends HttpClient { get config() { return { get: () => - this.get({ + this.httpClient.get({ endpoint: "config", }), }; @@ -19,7 +17,7 @@ export class PreservationAPIClient extends HttpClient { get trains() { return { get: id => - this.get({ + this.httpClient.get({ endpoint: "trains/" + id, headers: { "x-koha-embed": @@ -27,7 +25,7 @@ export class PreservationAPIClient extends HttpClient { }, }), getAll: (query = {}) => - this.get({ + this.httpClient.get({ endpoint: "trains?" + new URLSearchParams({ @@ -36,21 +34,21 @@ export class PreservationAPIClient extends HttpClient { }), }), delete: id => - this.delete({ + this.httpClient.delete({ endpoint: "trains/" + id, }), create: train => - this.post({ + this.httpClient.post({ endpoint: "trains", body: train, }), update: (train, id) => - this.put({ + this.httpClient.put({ endpoint: "trains/" + id, body: train, }), count: (query = {}) => - this.count({ + this.httpClient.count({ endpoint: "trains?" + new URLSearchParams({ @@ -65,14 +63,14 @@ export class PreservationAPIClient extends HttpClient { get processings() { return { get: id => - this.get({ + this.httpClient.get({ endpoint: "processings/" + id, headers: { "x-koha-embed": "attributes", }, }), getAll: query => - this.get({ + this.httpClient.get({ endpoint: "processings?" + new URLSearchParams({ @@ -82,21 +80,21 @@ export class PreservationAPIClient extends HttpClient { }), delete: id => - this.delete({ + this.httpClient.delete({ endpoint: "processings/" + id, }), create: processing => - this.post({ + this.httpClient.post({ endpoint: "processings", body: processing, }), update: (processing, id) => - this.put({ + this.httpClient.put({ endpoint: "processings/" + id, body: processing, }), count: (query = {}) => - this.count({ + this.httpClient.count({ endpoint: "processings?" + new URLSearchParams({ @@ -111,7 +109,7 @@ export class PreservationAPIClient extends HttpClient { get train_items() { return { get: (train_id, id) => - this.get({ + this.httpClient.get({ endpoint: "trains/" + train_id + "/items/" + id, headers: { "x-koha-embed": @@ -119,31 +117,31 @@ export class PreservationAPIClient extends HttpClient { }, }), delete: (train_id, id) => - this.delete({ + this.httpClient.delete({ endpoint: "trains/" + train_id + "/items/" + id, }), create: (train_item, train_id) => - this.post({ + this.httpClient.post({ endpoint: "trains/" + train_id + "/items", body: train_item, }), createAll: (train_items, train_id) => - this.post({ + this.httpClient.post({ endpoint: "trains/" + train_id + "/items/batch", body: train_items, }), copy: (new_train_id, train_id, id) => - this.post({ + this.httpClient.post({ endpoint: "trains/" + train_id + "/items/" + id + "/copy", body: { train_id: new_train_id }, }), update: (train_item, train_id, id) => - this.put({ + this.httpClient.put({ endpoint: "trains/" + train_id + "/items/" + id, body: train_item, }), count: (train_id, query = {}) => - this.count({ + this.httpClient.count({ endpoint: "trains/" + train_id + @@ -169,7 +167,7 @@ export class PreservationAPIClient extends HttpClient { _per_page: 1, q: JSON.stringify(q), }; - return this.get({ + return this.httpClient.get({ endpoint: "waiting-list/items?" + new URLSearchParams(params), headers: { @@ -180,16 +178,16 @@ export class PreservationAPIClient extends HttpClient { }); }, delete: id => - this.delete({ + this.httpClient.delete({ endpoint: "waiting-list/items/" + id, }), createAll: items => - this.post({ + this.httpClient.post({ endpoint: "waiting-list/items", body: items, }), count: (query = {}) => - this.count({ + this.httpClient.count({ endpoint: "waiting-list/items?" + new URLSearchParams({ diff --git a/koha-tmpl/intranet-tmpl/prog/js/fetch/recall-api-client.js b/koha-tmpl/intranet-tmpl/prog/js/fetch/recall-api-client.js index 3a413fe5972..9ceedb38147 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/fetch/recall-api-client.js +++ b/koha-tmpl/intranet-tmpl/prog/js/fetch/recall-api-client.js @@ -1,9 +1,7 @@ /* keep tidy */ -import HttpClient from "./http-client.js"; - -export class RecallAPIClient extends HttpClient { - constructor() { - super({ +export class RecallAPIClient { + constructor(HttpClient) { + this.httpClient = new HttpClient({ baseURL: "/cgi-bin/koha/svc/recall", }); } @@ -11,7 +9,7 @@ export class RecallAPIClient extends HttpClient { get recalls() { return { cancel: recall_id => - this.post({ + this.httpClient.post({ endpoint: "", body: "recall_id=%s&op=%s".format(recall_id, "cud-cancel"), headers: { @@ -20,7 +18,7 @@ export class RecallAPIClient extends HttpClient { }, }), expire: recall_id => - this.post({ + this.httpClient.post({ endpoint: "", body: "recall_id=%s&op=%s".format(recall_id, "cud-expire"), headers: { @@ -30,7 +28,7 @@ export class RecallAPIClient extends HttpClient { }), revert: recall_id => - this.post({ + this.httpClient.post({ endpoint: "", body: "recall_id=%s&op=%s".format(recall_id, "cud-revert"), headers: { @@ -40,7 +38,7 @@ export class RecallAPIClient extends HttpClient { }), overdue: recall_id => - this.post({ + this.httpClient.post({ endpoint: "", body: "recall_id=%s&op=%s".format(recall_id, "cud-overdue"), headers: { @@ -50,7 +48,7 @@ export class RecallAPIClient extends HttpClient { }), transit: recall_id => - this.post({ + this.httpClient.post({ endpoint: "", body: "recall_id=%s&op=%s".format(recall_id, "cud-transit"), headers: { diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/record-sources-api-client.js b/koha-tmpl/intranet-tmpl/prog/js/fetch/record-sources-api-client.js similarity index 76% rename from koha-tmpl/intranet-tmpl/prog/js/vue/fetch/record-sources-api-client.js rename to koha-tmpl/intranet-tmpl/prog/js/fetch/record-sources-api-client.js index b12882d1dca..4307bcff994 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/record-sources-api-client.js +++ b/koha-tmpl/intranet-tmpl/prog/js/fetch/record-sources-api-client.js @@ -1,8 +1,6 @@ -import HttpClient from "./http-client"; - -export class RecordSourcesAPIClient extends HttpClient { - constructor() { - super({ +export class RecordSourcesAPIClient { + constructor(HttpClient) { + this.httpClient = new HttpClient({ baseURL: "/api/v1/record_sources", }); } @@ -10,32 +8,32 @@ export class RecordSourcesAPIClient extends HttpClient { get record_sources() { return { create: record_source => - this.post({ + this.httpClient.post({ endpoint: "", body: record_source, }), delete: id => - this.delete({ + this.httpClient.delete({ endpoint: "/" + id, }), update: (record_source, id) => - this.put({ + this.httpClient.put({ endpoint: "/" + id, body: record_source, }), get: id => - this.get({ + this.httpClient.get({ endpoint: "/" + id, }), getAll: (query, params) => - this.getAll({ + this.httpClient.getAll({ endpoint: "/", query, params, headers: {}, }), count: (query = {}) => - this.count({ + this.httpClient.count({ endpoint: "?" + new URLSearchParams({ diff --git a/koha-tmpl/intranet-tmpl/prog/js/fetch/system-preferences-api-client.js b/koha-tmpl/intranet-tmpl/prog/js/fetch/system-preferences-api-client.js index 11d30a4156b..3ebc81f23ef 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/fetch/system-preferences-api-client.js +++ b/koha-tmpl/intranet-tmpl/prog/js/fetch/system-preferences-api-client.js @@ -1,9 +1,7 @@ /* keep tidy */ -import HttpClient from "./http-client.js"; - -export class SysprefAPIClient extends HttpClient { - constructor() { - super({ +export class SysprefAPIClient { + constructor(HttpClient) { + this.httpClient = new HttpClient({ baseURL: "/cgi-bin/koha/svc/config/systempreferences", }); } @@ -11,15 +9,16 @@ export class SysprefAPIClient extends HttpClient { get sysprefs() { return { get: variable => - this.get({ + this.httpClient.get({ endpoint: "/?pref=" + variable, }), update: (variable, value) => - this.post({ + this.httpClient.post({ endpoint: "", - body: "pref_%s=%s".format( + body: "pref_%s=%s&csrf_token=%s".format( encodeURIComponent(variable), - encodeURIComponent(value) + encodeURIComponent(value), + csrf_token ), headers: { "Content-Type": @@ -27,7 +26,7 @@ export class SysprefAPIClient extends HttpClient { }, }), update_all: sysprefs => - this.post({ + this.httpClient.post({ endpoint: "", body: Object.keys(sysprefs) .map(variable => diff --git a/koha-tmpl/intranet-tmpl/prog/js/fetch/ticket-api-client.js b/koha-tmpl/intranet-tmpl/prog/js/fetch/ticket-api-client.js index 267f65b1e1f..916c609905e 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/fetch/ticket-api-client.js +++ b/koha-tmpl/intranet-tmpl/prog/js/fetch/ticket-api-client.js @@ -1,9 +1,7 @@ /* keep tidy */ -import HttpClient from "./http-client.js"; - -export class TicketAPIClient extends HttpClient { - constructor() { - super({ +export class TicketAPIClient { + constructor(HttpClient) { + this.httpClient = new HttpClient({ baseURL: "/cgi-bin/koha/svc/", }); } @@ -11,7 +9,7 @@ export class TicketAPIClient extends HttpClient { get tickets() { return { mark_as_viewed: ticket_id => - this.post({ + this.httpClient.post({ endpoint: "problem_reports", body: "report_id=%s&op=%s".format(ticket_id, "cud-viewed"), headers: { @@ -20,7 +18,7 @@ export class TicketAPIClient extends HttpClient { }, }), mark_as_closed: ticket_id => - this.post({ + this.httpClient.post({ endpoint: "problem_reports", body: "report_id=%s&op=%s".format(ticket_id, "cud-closed"), headers: { @@ -29,7 +27,7 @@ export class TicketAPIClient extends HttpClient { }, }), mark_as_new: ticket_id => - this.post({ + this.httpClient.post({ endpoint: "problem_reports", body: "report_id=%s&op=%s".format(ticket_id, "cud-new"), headers: { diff --git a/koha-tmpl/intranet-tmpl/prog/js/pages/preferences.js b/koha-tmpl/intranet-tmpl/prog/js/pages/preferences.js index 58eae20d353..e95ca7c6ab7 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/pages/preferences.js +++ b/koha-tmpl/intranet-tmpl/prog/js/pages/preferences.js @@ -49,7 +49,7 @@ KOHA.Preferences = { return; } KOHA.AJAX.MarkRunning($(form).find(".save-all"), __("Saving...")); - const client = APIClient.syspref; + const client = APIClient.sysprefs; client.sysprefs .update_all(sysprefs) .then( 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 7e10da71eae..bda3763d838 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 @@ -1,21 +1,23 @@ -import ERMAPIClient from "./erm-api-client"; -import PatronAPIClient from "./patron-api-client"; -import AcquisitionAPIClient from "./acquisition-api-client"; -import AdditionalFieldsAPIClient from "./additional-fields-api-client"; -import AVAPIClient from "./authorised-values-api-client"; -import ItemAPIClient from "./item-api-client"; -import RecordSourcesAPIClient from "./record-sources-api-client"; -import SysprefAPIClient from "./system-preferences-api-client"; -import PreservationAPIClient from "./preservation-api-client"; +import HttpClient from "./http-client"; + +import ERMAPIClient from "./../../fetch/erm-api-client"; +import PatronAPIClient from "./../../fetch/patron-api-client"; +import AcquisitionAPIClient from "./../../fetch/acquisition-api-client"; +import AdditionalFieldsAPIClient from "./../../fetch/additional-fields-api-client"; +import AVAPIClient from "./../../fetch/authorised-values-api-client"; +import ItemAPIClient from "./../../fetch/item-api-client"; +import RecordSourcesAPIClient from "./../../fetch/record-sources-api-client"; +import SysprefAPIClient from "./../../fetch/system-preferences-api-client"; +import PreservationAPIClient from "./../../fetch/preservation-api-client"; export const APIClient = { - erm: new ERMAPIClient(), - patron: new PatronAPIClient(), - acquisition: new AcquisitionAPIClient(), - additional_fields: new AdditionalFieldsAPIClient(), - authorised_values: new AVAPIClient(), - item: new ItemAPIClient(), - sysprefs: new SysprefAPIClient(), - preservation: new PreservationAPIClient(), - record_sources: new RecordSourcesAPIClient(), + erm: new ERMAPIClient(HttpClient), + patron: new PatronAPIClient(HttpClient), + acquisition: new AcquisitionAPIClient(HttpClient), + additional_fields: new AdditionalFieldsAPIClient(HttpClient), + authorised_values: new AVAPIClient(HttpClient), + item: new ItemAPIClient(HttpClient), + sysprefs: new SysprefAPIClient(HttpClient), + preservation: new PreservationAPIClient(HttpClient), + record_sources: new RecordSourcesAPIClient(HttpClient), }; diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/authorised-values-api-client.js b/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/authorised-values-api-client.js deleted file mode 100644 index 1498cd7c98e..00000000000 --- a/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/authorised-values-api-client.js +++ /dev/null @@ -1,30 +0,0 @@ -import HttpClient from "./http-client"; - -export class AVAPIClient extends HttpClient { - constructor() { - super({ - baseURL: "/api/v1/authorised_value_categories", - }); - } - - get values() { - return { - get: category => - this.get({ - endpoint: `/${category}/authorised_values`, - }), - getCategoriesWithValues: cat_array => - this.get({ - endpoint: - '?q={"me.category_name":[' + - cat_array.join(", ") + - "]}", - headers: { - "x-koha-embed": "authorised_values", - }, - }), - }; - } -} - -export default AVAPIClient; diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/patron-api-client.js b/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/patron-api-client.js deleted file mode 100644 index 4c39e977fda..00000000000 --- a/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/patron-api-client.js +++ /dev/null @@ -1,20 +0,0 @@ -import HttpClient from "./http-client"; - -export class PatronAPIClient extends HttpClient { - constructor() { - super({ - baseURL: "/api/v1/", - }); - } - - get patrons() { - return { - get: id => - this.get({ - endpoint: "patrons/" + id, - }), - }; - } -} - -export default PatronAPIClient; 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 deleted file mode 100644 index f37f3252ea4..00000000000 --- a/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/system-preferences-api-client.js +++ /dev/null @@ -1,33 +0,0 @@ -import HttpClient from "./http-client"; - -export class SysprefAPIClient extends HttpClient { - constructor() { - super({ - baseURL: "/cgi-bin/koha/svc/config/systempreferences", - }); - } - - get sysprefs() { - return { - get: variable => - this.get({ - endpoint: "/?pref=" + variable, - }), - update: (variable, value) => - this.post({ - endpoint: "", - body: "pref_%s=%s&csrf_token=%s".format( - variable, - value, - csrf_token - ), - headers: { - "Content-Type": - "application/x-www-form-urlencoded;charset=utf-8", - }, - }), - }; - } -} - -export default SysprefAPIClient; diff --git a/webpack.config.js b/webpack.config.js index ae87653c244..536e1e389b0 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -4,6 +4,11 @@ const path = require("path"); const webpack = require('webpack'); module.exports = { + resolve: { + alias: { + '@fetch': path.resolve(__dirname, 'koha-tmpl/intranet-tmpl/prog/js/fetch'), + }, + }, entry: { erm: "./koha-tmpl/intranet-tmpl/prog/js/vue/modules/erm.ts", preservation: "./koha-tmpl/intranet-tmpl/prog/js/vue/modules/preservation.ts", -- 2.34.1