navigation.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. const graphHelper = require('../../helpers/graph')
  2. module.exports = {
  3. Query: {
  4. async navigationTree (obj, args, context, info) {
  5. return WIKI.db.navigation.getTree({ cache: false, locale: 'all', bypassAuth: true })
  6. },
  7. navigationConfig (obj, args, context, info) {
  8. return WIKI.config.nav
  9. }
  10. },
  11. Mutation: {
  12. async updateNavigationTree (obj, args, context) {
  13. try {
  14. await WIKI.db.navigation.query().patch({
  15. config: args.tree
  16. }).where('key', 'site')
  17. for (const tree of args.tree) {
  18. await WIKI.cache.set(`nav:sidebar:${tree.locale}`, tree.items, 300)
  19. }
  20. return {
  21. responseResult: graphHelper.generateSuccess('Navigation updated successfully')
  22. }
  23. } catch (err) {
  24. return graphHelper.generateError(err)
  25. }
  26. },
  27. async updateNavigationConfig (obj, args, context) {
  28. try {
  29. WIKI.config.nav = {
  30. mode: args.mode
  31. }
  32. await WIKI.configSvc.saveToDb(['nav'])
  33. return {
  34. responseResult: graphHelper.generateSuccess('Navigation config updated successfully')
  35. }
  36. } catch (err) {
  37. return graphHelper.generateError(err)
  38. }
  39. }
  40. }
  41. }