navigation.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. const graphHelper = require('../../helpers/graph')
  2. /* global WIKI */
  3. module.exports = {
  4. Query: {
  5. async navigation () { return {} }
  6. },
  7. Mutation: {
  8. async navigation () { return {} }
  9. },
  10. NavigationQuery: {
  11. async tree (obj, args, context, info) {
  12. return WIKI.models.navigation.getTree({ cache: false, locale: 'all' })
  13. },
  14. config (obj, args, context, info) {
  15. return WIKI.config.nav
  16. }
  17. },
  18. NavigationMutation: {
  19. async updateTree (obj, args, context) {
  20. try {
  21. await WIKI.models.navigation.query().patch({
  22. config: args.tree
  23. }).where('key', 'site')
  24. await WIKI.cache.set('nav:sidebar', args.tree, 300)
  25. return {
  26. responseResult: graphHelper.generateSuccess('Navigation updated successfully')
  27. }
  28. } catch (err) {
  29. return graphHelper.generateError(err)
  30. }
  31. },
  32. async updateConfig (obj, args, context) {
  33. try {
  34. WIKI.config.nav = {
  35. mode: args.mode
  36. }
  37. await WIKI.configSvc.saveToDb(['nav'])
  38. return {
  39. responseResult: graphHelper.generateSuccess('Navigation config updated successfully')
  40. }
  41. } catch (err) {
  42. return graphHelper.generateError(err)
  43. }
  44. }
  45. }
  46. }