Jonathan Druart
821808ec31
Signed-off-by: Matt Blenkinsop <matt.blenkinsop@ptfs-europe.com> Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
241 lines
7.7 KiB
JavaScript
241 lines
7.7 KiB
JavaScript
import HttpClient from "./http-client";
|
|
|
|
export class ERMAPIClient extends HttpClient {
|
|
constructor() {
|
|
super({
|
|
baseURL: "/api/v1/erm/",
|
|
});
|
|
}
|
|
|
|
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) =>
|
|
this.get({
|
|
endpoint: "agreements?" + (query || "_per_page=-1"),
|
|
}),
|
|
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: () => this.count("agreements"), //TODO: Implement count method
|
|
};
|
|
}
|
|
|
|
get licenses() {
|
|
return {
|
|
get: (id) =>
|
|
this.get({
|
|
endpoint: "licenses/" + id,
|
|
headers: {
|
|
"x-koha-embed":
|
|
"user_roles,user_roles.patron,vendor,documents",
|
|
},
|
|
}),
|
|
getAll: (query) =>
|
|
this.get({
|
|
endpoint: "licenses?" + (query || "_per_page=-1"),
|
|
headers: {
|
|
"x-koha-embed": "vendor.name",
|
|
},
|
|
}),
|
|
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,
|
|
}),
|
|
};
|
|
}
|
|
|
|
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) =>
|
|
this.get({
|
|
endpoint:
|
|
"eholdings/local/packages?" + (query || "_per_page=-1"),
|
|
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",
|
|
},
|
|
}),
|
|
getAll: (query) =>
|
|
this.get({
|
|
endpoint: "eholdings/local/titles?" + (query || "_per_page=-1"),
|
|
}),
|
|
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",
|
|
},
|
|
}),
|
|
getAll: (query) =>
|
|
this.get({
|
|
endpoint:
|
|
"eholdings/ebsco/packages/" +
|
|
id +
|
|
(query || "_per_page=-1"),
|
|
headers: {
|
|
"x-koha-embed": "resources+count,vendor.name",
|
|
},
|
|
}),
|
|
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",
|
|
},
|
|
}),
|
|
getAll: (query) =>
|
|
this.get({
|
|
endpoint:
|
|
"eholdings/local/ebsco/titles" + (query || "_per_page=-1"),
|
|
}),
|
|
};
|
|
}
|
|
|
|
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/packages/" + id,
|
|
body,
|
|
}),
|
|
};
|
|
}
|
|
}
|
|
|
|
export default ERMAPIClient;
|