feat: fetch page tree resolver
This commit is contained in:
@@ -115,6 +115,34 @@ module.exports = {
|
||||
},
|
||||
async tags (obj, args, context, info) {
|
||||
return WIKI.models.tags.query().orderBy('tag', 'asc')
|
||||
},
|
||||
async tree (obj, args, context, info) {
|
||||
let results = []
|
||||
let conds = {
|
||||
localeCode: args.locale,
|
||||
parent: (args.parent < 1) ? null : args.parent
|
||||
}
|
||||
switch (args.mode) {
|
||||
case 'FOLDERS':
|
||||
conds.isFolder = true
|
||||
results = await WIKI.models.knex('pageTree').where(conds)
|
||||
break
|
||||
case 'PAGES':
|
||||
await WIKI.models.knex('pageTree').where(conds).andWhereNotNull('pageId')
|
||||
break
|
||||
default:
|
||||
results = await WIKI.models.knex('pageTree').where(conds)
|
||||
break
|
||||
}
|
||||
return results.filter(r => {
|
||||
return WIKI.auth.checkAccess(context.req.user, ['read:pages'], {
|
||||
path: r.path,
|
||||
locale: r.localeCode
|
||||
})
|
||||
}).map(r => ({
|
||||
...r,
|
||||
locale: r.localeCode
|
||||
}))
|
||||
}
|
||||
},
|
||||
PageMutation: {
|
||||
|
Reference in New Issue
Block a user