Bug 32030: Add a route to display a resource
[srvgit] / koha-tmpl / intranet-tmpl / prog / js / vue / fetch.js
1 import { setError } from "./messages";
2
3 export const fetchAgreement = async function (agreement_id) {
4     if (!agreement_id) return;
5     const apiUrl = "/api/v1/erm/agreements/" + agreement_id;
6     let agreement;
7     await fetch(apiUrl, {
8         headers: {
9             "x-koha-embed":
10                 "periods,user_roles,user_roles.patron,agreement_licenses,agreement_licenses.license,agreement_relationships,agreement_relationships.related_agreement,documents",
11         },
12     })
13         .then(checkError)
14         .then(
15             (result) => {
16                 agreement = result;
17             },
18             (error) => {
19                 setError(error);
20             }
21         );
22     return agreement;
23 };
24
25 export const fetchAgreements = async function () {
26     const apiUrl = "/api/v1/erm/agreements";
27     let agreements;
28     await fetch(apiUrl)
29         .then(checkError)
30         .then(
31             (result) => {
32                 agreements = result;
33             },
34             (error) => {
35                 setError(error);
36             }
37         );
38     return agreements;
39 };
40
41 export const fetchLicense = async function (license_id) {
42     if (!license_id) return;
43     const apiUrl = "/api/v1/erm/licenses/" + license_id;
44     let license;
45     await fetch(apiUrl)
46         .then(checkError)
47         .then(
48             (result) => {
49                 license = result;
50             },
51             (error) => {
52                 setError(error);
53             }
54         );
55     return license;
56 };
57
58 export const fetchLicenses = async function () {
59     const apiUrl = "/api/v1/erm/licenses";
60     let licenses;
61     await fetch(apiUrl)
62         .then(checkError)
63         .then(
64             (result) => {
65                 licenses = result;
66             },
67             (error) => {
68                 setError(error);
69             }
70         );
71     return licenses;
72 };
73
74 export const fetchPatron = async function (patron_id) {
75     if (!patron_id) return;
76     const apiUrl = "/api/v1/patrons/" + patron_id;
77     let patron;
78     await fetch(apiUrl)
79         .then(checkError)
80         .then(
81             (result) => {
82                 patron = result;
83             },
84             (error) => {
85                 setError(error);
86             }
87         );
88     return patron;
89 };
90
91 export const fetchVendors = async function () {
92     const apiUrl = "/api/v1/acquisitions/vendors";
93     let vendors;
94     await fetch(apiUrl)
95         .then(checkError)
96         .then(
97             (result) => {
98                 vendors = result;
99             },
100             (error) => {
101                 setError(error);
102             }
103         );
104     return vendors;
105 };
106
107 export const fetchPackage = async function (package_id) {
108     if (!package_id) return;
109     const apiUrl = "/api/v1/erm/eholdings/packages/" + package_id;
110     let erm_package;
111     await fetch(apiUrl, {
112         headers: {
113             "x-koha-embed": "package_agreements,package_agreements.agreement,resources,resources.title",
114         },
115     })
116         .then(checkError)
117         .then(
118             (result) => {
119                 erm_package = result;
120             },
121             (error) => {
122                 setError(error);
123             }
124         );
125     return erm_package;
126 };
127
128 export const fetchPackages = async function () {
129     const apiUrl = "/api/v1/erm/eholdings/packages";
130     let packages;
131     await fetch(apiUrl)
132         .then(checkError)
133         .then(
134             (result) => {
135                 packages = result;
136             },
137             (error) => {
138                 setError(error);
139             }
140         );
141     return packages;
142 };
143
144 export const fetchTitle = async function (title_id) {
145     if (!title_id) return;
146     const apiUrl = "/api/v1/erm/eholdings/titles/" + title_id;
147     let title;
148     await fetch(apiUrl, {
149         headers: {
150             "x-koha-embed": "resources,resources.package",
151         },
152     })
153         .then(checkError)
154         .then(
155             (result) => {
156                 title = result;
157             },
158             (error) => {
159                 setError(error);
160             }
161         );
162     return title;
163 };
164
165 export const fetchTitles = async function () {
166     const apiUrl = "/api/v1/erm/eholdings/titles";
167     let titles;
168     await fetch(apiUrl)
169         .then(checkError)
170         .then(
171             (result) => {
172                 titles = result;
173             },
174             (error) => {
175                 setError(error);
176             }
177         );
178     return titles;
179 };
180
181 export const fetchResource = async function (resource_id) {
182     if (!resource_id) return;
183     const apiUrl = "/api/v1/erm/eholdings/resources/" + resource_id;
184     let resource;
185     await fetch(apiUrl, {
186         headers: {
187             "x-koha-embed": "title,package",
188         },
189     })
190         .then(checkError)
191         .then(
192             (result) => {
193                 resource = result;
194             },
195             (error) => {
196                 setError(error);
197             }
198         );
199     return resource;
200 };
201
202 export const fetchresources = async function () {
203     const apiUrl = "/api/v1/erm/eholdings/resources";
204     let resources;
205     await fetch(apiUrl)
206         .then(checkError)
207         .then(
208             (result) => {
209                 resources = result;
210             },
211             (error) => {
212                 setError(error);
213             }
214         );
215     return resources;
216 };
217
218 function checkError(response) {
219     if (response.status >= 200 && response.status <= 299) {
220         return response.json();
221     } else {
222         console.log("Server returned an error:");
223         console.log(response);
224         setError("%s (%s)".format(response.statusText, response.status));
225     }
226 }