|
@@ -115,6 +115,34 @@ module.exports = {
|
|
},
|
|
},
|
|
async tags (obj, args, context, info) {
|
|
async tags (obj, args, context, info) {
|
|
return WIKI.models.tags.query().orderBy('tag', 'asc')
|
|
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: {
|
|
PageMutation: {
|