1 import { setError } from "./messages";
3 export const fetchAgreement = async function (agreement_id) {
4 if (!agreement_id) return;
5 const apiUrl = "/api/v1/erm/agreements/" + agreement_id;
10 "periods,user_roles,user_roles.patron,agreement_licenses,agreement_licenses.license,agreement_relationships,agreement_relationships.related_agreement,documents,agreement_packages,agreement_packages.package,vendor",
25 export const fetchAgreements = async function () {
26 const apiUrl = "/api/v1/erm/agreements";
41 export const fetchLicense = async function (license_id) {
42 if (!license_id) return;
43 const apiUrl = "/api/v1/erm/licenses/" + license_id;
47 "x-koha-embed": "vendor",
62 export const fetchLicenses = async function () {
63 const apiUrl = "/api/v1/erm/licenses";
67 "x-koha-embed": "vendor.name",
82 export const fetchPatron = async function (patron_id) {
83 if (!patron_id) return;
84 const apiUrl = "/api/v1/patrons/" + patron_id;
99 export const fetchVendors = async function () {
100 const apiUrl = "/api/v1/acquisitions/vendors";
115 const _createEditPackage = async function (method, erm_package) {
116 let apiUrl = "/api/v1/erm/eholdings/local/packages";
118 if (method == "PUT") {
119 apiUrl += "/" + erm_package.package_id;
121 delete erm_package.package_id;
122 delete erm_package.resources;
123 delete erm_package.vendor;
124 delete erm_package.resources_count;
125 delete erm_package.is_selected;
127 erm_package.package_agreements = erm_package.package_agreements.map(
128 ({ package_id, agreement, ...keepAttrs }) => keepAttrs
133 body: JSON.stringify(erm_package),
135 "Content-Type": "application/json;charset=utf-8",
140 await fetch(apiUrl, options)
155 export const createPackage = function (erm_package) {
156 return _createEditPackage("POST", erm_package);
158 export const editPackage = function (erm_package) {
159 return _createEditPackage("PUT", erm_package);
162 const _fetchPackage = async function (apiUrl, package_id) {
163 if (!package_id) return;
165 await fetch(apiUrl, {
168 "package_agreements,package_agreements.agreement,resources+count,vendor",
174 erm_package = result;
182 export const fetchLocalPackage = function (package_id) {
183 const apiUrl = "/api/v1/erm/eholdings/local/packages/" + package_id;
184 return _fetchPackage(apiUrl, package_id);
186 export const fetchEBSCOPackage = function (package_id) {
187 const apiUrl = "/api/v1/erm/eholdings/ebsco/packages/" + package_id;
188 return _fetchPackage(apiUrl, package_id);
191 export const _fetchPackages = async function (apiUrl) {
193 await fetch(apiUrl, {
195 "x-koha-embed": "resources+count,vendor.name",
209 export const fetchLocalPackages = function () {
210 const apiUrl = "/api/v1/erm/eholdings/local/packages";
211 return _fetchPackages(apiUrl);
213 export const fetchEBSCOPackages = function () {
214 const apiUrl = "/api/v1/erm/eholdings/ebsco/packages";
215 return _fetchPackages(apiUrl);
218 export const fetchCountLocalPackages = async function (filters) {
220 "me.name": { like: "%" + filters.package_name + "%" },
221 ...(filters.content_type
222 ? { "me.content_type": filters.content_type }
229 q: JSON.stringify(q),
231 let count_local_packages;
232 var apiUrl = "/api/v1/erm/eholdings/local/packages";
233 await fetch(apiUrl + "?" + new URLSearchParams(params))
237 (count_local_packages = response.headers.get("X-Total-Count"))
239 return count_local_packages;
242 export const _fetchTitle = async function (apiUrl, title_id) {
243 if (!title_id) return;
245 await fetch(apiUrl, {
247 "x-koha-embed": "resources,resources.package",
261 export const fetchLocalTitle = function (title_id) {
262 const apiUrl = "/api/v1/erm/eholdings/local/titles/" + title_id;
263 return _fetchTitle(apiUrl, title_id);
265 export const fetchEBSCOTitle = function (title_id) {
266 const apiUrl = "/api/v1/erm/eholdings/ebsco/titles/" + title_id;
267 return _fetchTitle(apiUrl, title_id);
270 export const _fetchTitles = async function (apiUrl) {
284 export const fetchLocalTitles = function () {
285 const apiUrl = "/api/v1/erm/eholdings/local/titles";
286 return _fetchTitles(apiUrl);
288 export const fetchEBSCOTitles = function () {
289 const apiUrl = "/api/v1/erm/eholdings/ebsco/titles";
290 return _fetchTitles(apiUrl);
293 export const fetchCountLocalTitles = async function (filters) {
295 "me.publication_title": {
296 like: "%" + filters.publication_title + "%",
298 ...(filters.publication_type
299 ? { "me.publication_type": filters.publication_type }
305 q: JSON.stringify(q),
307 let count_local_titles;
308 var apiUrl = "/api/v1/erm/eholdings/local/titles";
309 await fetch(apiUrl + "?" + new URLSearchParams(params))
313 (count_local_titles = response.headers.get("X-Total-Count"))
315 return count_local_titles;
318 export const _fetchResource = async function (apiUrl, resource_id) {
319 if (!resource_id) return;
321 await fetch(apiUrl, {
323 "x-koha-embed": "title,package,vendor",
337 export const fetchLocalResource = function (resource_id) {
338 const apiUrl = "/api/v1/erm/eholdings/local/resources/" + resource_id;
339 return _fetchResource(apiUrl, resource_id);
341 export const fetchEBSCOResource = function (resource_id) {
342 const apiUrl = "/api/v1/erm/eholdings/ebsco/resources/" + resource_id;
343 return _fetchResource(apiUrl, resource_id);
346 export const _fetchResources = async function (apiUrl) {
361 export const fetchLocalResources = function () {
362 const apiUrl = "/api/v1/erm/eholdings/local/resources";
363 return _fetchResources(apiUrl);
365 export const fetchEBSCOResources = function () {
366 const apiUrl = "/api/v1/erm/eholdings/ebsco/resources";
367 return _fetchResources(apiUrl);
370 function checkError(response) {
371 if (response.status >= 200 && response.status <= 299) {
372 return response.json();
374 console.log("Server returned an error:");
375 console.log(response);
376 setError("%s (%s)".format(response.statusText, response.status));