Skip to content

Commit ee0c2a3

Browse files
megothrubensworks
authored andcommitted
Merging graphs
1 parent 5fb977a commit ee0c2a3

File tree

2 files changed

+39
-29
lines changed

2 files changed

+39
-29
lines changed

lib/acl-checker.js

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -149,40 +149,40 @@ class ACLChecker {
149149
debug(err)
150150
throw err
151151
}
152-
153-
// const subject = rdf.sym(acl)
154-
console.log('>>>> GRAPH WITHOUT GROUPS', graph.length)
155-
const fetcher = new rdf.Fetcher(graph)
156-
// console.log(graph.statementsMatching(null, ACL('agentGroup'), null))
157-
const groupUrls = graph.statementsMatching(null, ACL('agentGroup'), null).map(node => node.object.value.split('#')[0])
158-
console.log('>>>>>>>>>> GROUPS', groupUrls)
159-
await groupUrls.map(groupUrl => fetcher.load(groupUrl))
160-
// const loadingGroups = groupUrls.map(async groupUrl => {
161-
// console.log('STARTING')
162-
// const response = await fetch(groupUrl)
163-
// console.log(response)
164-
// // console.log('>>>>>>>> RESPONSE', response)
165-
// // console.log('AFTER TRY CATCH')
166-
// // const body = await response.text()
167-
// // return new Promise((resolve, reject) => {
168-
// // console.log('WWWAAAAAAAT!!')
169-
// // rdf.parse(body, graph, group, 'text/turtle', err => {
170-
// // if (err) {
171-
// // return reject(err)
172-
// // }
173-
// // resolve()
174-
// // })
175-
// // })
176-
// })
177-
// await Promise.all(loadingGroups)
178-
console.log('>>>> GRAPH WITH GROUPS', graph.length)
179152
const relative = resource.replace(acl.replace(/[^/]+$/, ''), './')
180153
debug(`Using ACL ${acl} for ${relative}`)
181154
returnAcl = { acl, graph, isContainer }
182155
}
183156
if (!returnAcl) {
184157
throw new HTTPError(500, `No ACL found for ${resource}, searched in \n- ${acls.join('\n- ')}`)
185158
}
159+
// const subject = rdf.sym(acl)
160+
console.log('>>>> GRAPH WITHOUT GROUPS', returnAcl.graph.length)
161+
// const fetcher = new rdf.Fetcher(returnAcl.graph)
162+
// console.log(graph.statementsMatching(null, ACL('agentGroup'), null))
163+
const groupUrls = returnAcl.graph.statementsMatching(null, ACL('agentGroup'), null).map(node => node.object.value.split('#')[0])
164+
// console.log('>>>>>>>>>> GROUPS', groupUrls)
165+
await groupUrls.map(groupUrl => this.fetch(groupUrl, returnAcl.graph))
166+
// const loadingGroups = groupUrls.map(async groupUrl => {
167+
// console.log('STARTING')
168+
// const response = await fetch(groupUrl)
169+
// console.log(response)
170+
// // console.log('>>>>>>>> RESPONSE', response)
171+
// // console.log('AFTER TRY CATCH')
172+
// // const body = await response.text()
173+
// // return new Promise((resolve, reject) => {
174+
// // console.log('WWWAAAAAAAT!!')
175+
// // rdf.parse(body, graph, group, 'text/turtle', err => {
176+
// // if (err) {
177+
// // return reject(err)
178+
// // }
179+
// // resolve()
180+
// // })
181+
// // })
182+
// })
183+
// await Promise.all(loadingGroups)
184+
console.log('>>>> GRAPH WITH GROUPS', returnAcl.graph.length)
185+
186186
return returnAcl
187187
// const nearestACL = possibleACLs.reduce((prevACL, acl) => {
188188
// return prevACL.catch(() => new Promise((resolve, reject) => {

lib/handlers/allow.js

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,17 @@ function allow (mode) {
7171
* @return {Function} Returns a `fetch(uri, callback)` handler
7272
*/
7373
function fetchFromLdp (mapper, ldp) {
74-
return async function fetch (url) {
75-
return ldp.getGraph(url)
74+
return async function fetch (url, graph = $rdf.graph()) {
75+
// Convert the URL into a filename
76+
const { path, contentType } = await mapper.mapUrlToFile({ url })
77+
// Read the file from disk
78+
const body = await new Promise((resolve, reject) => {
79+
ldp.readFile(path, (e, c) => e ? reject(e) : resolve(c))
80+
})
81+
// Parse the file as Turtle
82+
console.log('OLD GRAPH - merge', graph.length)
83+
$rdf.parse(body, graph, url, contentType)
84+
console.log('NEW GRAPH - merge', graph.length)
85+
return graph
7686
}
7787
}

0 commit comments

Comments
 (0)