Koha/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/erm-api-client.js
Matt Blenkinsop 7fd1372e30
Bug 34587: Convert titles search to keyword search
Now that we are harvesting more data types, "titles" search no longer applies and should become a keyword search able to work for any data type

Signed-off-by: Jessica Zairo <jzairo@bywatersolutions.com>
Signed-off-by: Michaela Sieber <michaela.sieber@kit.edu>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
2023-10-31 16:46:09 -03:00

405 lines
12 KiB
JavaScript

import HttpClient from "./http-client";
export class ERMAPIClient extends HttpClient {
constructor() {
super({
baseURL: "/api/v1/erm/",
});
}
get config() {
return {
get: () =>
this.get({
endpoint: "config",
}),
};
}
get agreements() {
return {
get: id =>
this.get({
endpoint: "agreements/" + id,
headers: {
"x-koha-embed":
"periods,user_roles,user_roles.patron,agreement_licenses,agreement_licenses.license,agreement_relationships,agreement_relationships.related_agreement,documents,agreement_packages,agreement_packages.package,vendor",
},
}),
getAll: (query, params) =>
this.getAll({
endpoint: "agreements",
query,
params,
}),
delete: id =>
this.delete({
endpoint: "agreements/" + id,
}),
create: agreement =>
this.post({
endpoint: "agreements",
body: agreement,
}),
update: (agreement, id) =>
this.put({
endpoint: "agreements/" + id,
body: agreement,
}),
count: (query = {}) =>
this.count({
endpoint:
"agreements?" +
new URLSearchParams({
_page: 1,
_per_page: 1,
...(query && { q: JSON.stringify(query) }),
}),
}),
};
}
get licenses() {
return {
get: id =>
this.get({
endpoint: "licenses/" + id,
headers: {
"x-koha-embed":
"user_roles,user_roles.patron,vendor,documents",
},
}),
getAll: (query, params) =>
this.getAll({
endpoint: "licenses",
query,
params,
headers: {
"x-koha-embed": "vendor",
},
}),
delete: id =>
this.delete({
endpoint: "licenses/" + id,
}),
create: license =>
this.post({
endpoint: "licenses",
body: license,
}),
update: (license, id) =>
this.put({
endpoint: "licenses/" + id,
body: license,
}),
count: (query = {}) =>
this.count({
endpoint:
"licenses?" +
new URLSearchParams({
_page: 1,
_per_page: 1,
...(query && { q: JSON.stringify(query) }),
}),
}),
};
}
get localPackages() {
return {
get: id =>
this.get({
endpoint: "eholdings/local/packages/" + id,
headers: {
"x-koha-embed":
"package_agreements,package_agreements.agreement,resources+count,vendor",
},
}),
getAll: (query, params) =>
this.getAll({
endpoint: "eholdings/local/packages",
query,
params,
headers: {
"x-koha-embed": "resources+count,vendor.name",
},
}),
delete: id =>
this.delete({
endpoint: "eholdings/local/packages/" + id,
}),
create: local_package =>
this.post({
endpoint: "eholdings/local/packages",
body: local_package,
}),
update: (local_package, id) =>
this.put({
endpoint: "eholdings/local/packages/" + id,
body: local_package,
}),
count: (query = {}) =>
this.count({
endpoint:
"eholdings/local/packages?" +
new URLSearchParams({
_page: 1,
_per_page: 1,
...(query && { q: JSON.stringify(query) }),
}),
}),
};
}
get localTitles() {
return {
get: id =>
this.get({
endpoint: "eholdings/local/titles/" + id,
headers: {
"x-koha-embed": "resources,resources.package",
},
}),
delete: id =>
this.delete({
endpoint: "eholdings/local/titles/" + id,
}),
create: local_package =>
this.post({
endpoint: "eholdings/local/titles",
body: local_package,
}),
update: (local_package, id) =>
this.put({
endpoint: "eholdings/local/titles/" + id,
body: local_package,
}),
count: (query = {}) =>
this.count({
endpoint:
"eholdings/local/titles?" +
new URLSearchParams({
_page: 1,
_per_page: 1,
...(query && { q: JSON.stringify(query) }),
}),
}),
import: body =>
this.post({
endpoint: "eholdings/local/titles/import",
body,
}),
};
}
get localResources() {
return {
get: id =>
this.get({
endpoint: "eholdings/local/resources/" + id,
headers: {
"x-koha-embed": "title,package,vendor",
},
}),
};
}
get EBSCOPackages() {
return {
get: id =>
this.get({
endpoint: "eholdings/ebsco/packages/" + id,
headers: {
"x-koha-embed":
"package_agreements,package_agreements.agreement,resources+count,vendor",
},
}),
patch: (id, body) =>
this.patch({
endpoint: "eholdings/ebsco/packages/" + id,
body,
}),
};
}
get EBSCOTitles() {
return {
get: id =>
this.get({
endpoint: "eholdings/ebsco/titles/" + id,
headers: {
"x-koha-embed": "resources,resources.package",
},
}),
};
}
get EBSCOResources() {
return {
get: id =>
this.get({
endpoint: "eholdings/ebsco/resources/" + id,
headers: {
"x-koha-embed": "title,package,vendor",
},
}),
patch: (id, body) =>
this.patch({
endpoint: "eholdings/ebsco/resources/" + id,
body,
}),
};
}
get usage_data_providers() {
return {
get: id =>
this.get({
endpoint: "usage_data_providers/" + id,
}),
getAll: query =>
this.get({
endpoint: "usage_data_providers",
query,
}),
delete: id =>
this.delete({
endpoint: "usage_data_providers/" + id,
}),
create: usage_data_provider =>
this.post({
endpoint: "usage_data_providers",
body: usage_data_provider,
}),
update: (usage_data_provider, id) =>
this.put({
endpoint: "usage_data_providers/" + id,
body: usage_data_provider,
}),
run: (id, begin_date, end_date) =>
this.get({
endpoint:
"usage_data_providers/" +
id +
"/run?begin_date=" +
begin_date +
"&end_date=" +
end_date,
}),
test: id =>
this.get({
endpoint: "usage_data_providers/" + id + "/test_connection",
}),
count: (query = {}) =>
this.count({
endpoint:
"usage_data_providers?" +
new URLSearchParams({
_page: 1,
_per_page: 1,
...(query && { q: JSON.stringify(query) }),
}),
}),
};
}
get counter_files() {
return {
delete: id =>
this.delete({
endpoint: "counter_files/" + id,
}),
count: (query = {}) =>
this.count({
endpoint:
"counter_files?" +
new URLSearchParams({
_page: 1,
_per_page: 1,
...(query && { q: JSON.stringify(query) }),
}),
}),
};
}
get default_usage_reports() {
return {
getAll: query =>
this.get({
endpoint: "default_usage_reports",
query,
}),
create: default_usage_report =>
this.post({
endpoint: "default_usage_reports",
body: default_usage_report,
}),
delete: (id) =>
this.delete({
endpoint: "default_usage_reports/" + id,
}),
};
}
get usage_platforms() {
return {
count: (query = {}) =>
this.count({
endpoint:
"usage_platforms?" +
new URLSearchParams({
_page: 1,
_per_page: 1,
...(query && { q: JSON.stringify(query) }),
}),
}),
};
}
get usage_items() {
return {
count: (query = {}) =>
this.count({
endpoint:
"usage_items?" +
new URLSearchParams({
_page: 1,
_per_page: 1,
...(query && { q: JSON.stringify(query) }),
}),
}),
};
}
get usage_databases() {
return {
count: (query = {}) =>
this.count({
endpoint:
"usage_databases?" +
new URLSearchParams({
_page: 1,
_per_page: 1,
...(query && { q: JSON.stringify(query) }),
}),
}),
};
}
get usage_titles() {
return {
count: (query = {}) =>
this.count({
endpoint:
"usage_titles?" +
new URLSearchParams({
_page: 1,
_per_page: 1,
...(query && { q: JSON.stringify(query) }),
}),
}),
};
}
}
export default ERMAPIClient;