Skip to content

Commit 66ce30a

Browse files
author
JF
committed
addFilters : rework
1 parent b9ae382 commit 66ce30a

File tree

1 file changed

+27
-16
lines changed

1 file changed

+27
-16
lines changed

src/hydra/parseHydraDocumentation.js

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -189,31 +189,41 @@ function findRelatedClass(docs, property) {
189189
throw new Error(`Cannot find the class related to ${property["@id"]}.`);
190190
}
191191

192-
async function addFilters(api) {
193-
for (const resource of api.resources) {
194-
const resourceFilters = [];
192+
function addFilters(api) {
193+
const promises = [];
195194

196-
let response = await fetchResource(resource.url);
195+
for (const resource of api.resources) {
196+
let promise = fetchResource(resource.url).then(response => {
197+
const resourceFilters = [];
197198

198-
if (response.filters) {
199-
for (const filter of response.filters) {
200-
let property = filter.property;
199+
if (response.filters) {
200+
for (const filter of response.filters) {
201+
let property = filter.property;
201202

202-
// TODO : To prevent PropertyFilter, maybe should be handle specifically ?
203-
if (property === null) {
204-
continue;
205-
}
203+
// TODO : To prevent PropertyFilter, maybe should be handle specifically ?
204+
if (property === null) {
205+
continue;
206+
}
206207

207-
const resourceFilter = new Filter(property, filter.variable);
208+
const resourceFilter = new Filter(property, filter.variable);
208209

209-
resourceFilters.push(resourceFilter);
210+
resourceFilters.push(resourceFilter);
211+
}
210212
}
211-
}
212213

213-
resource.filters = resourceFilters;
214+
return resourceFilters;
215+
});
216+
217+
promises.push(promise);
214218
}
215219

216-
return api;
220+
return Promise.all(promises).then(values => {
221+
api.resources.map((resource, index) => {
222+
resource.filters = values[index];
223+
});
224+
225+
return api;
226+
});
217227
}
218228

219229
/**
@@ -483,6 +493,7 @@ export default function parseHydraDocumentation(entrypointUrl, options = {}) {
483493
)
484494
.then(({ api, response, status }) => {
485495
return addFilters(api).then(api => {
496+
console.log(api);
486497
return { api, response, status };
487498
});
488499
});

0 commit comments

Comments
 (0)