page.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. const graphHelper = require('../../helpers/graph')
  2. /* global WIKI */
  3. module.exports = {
  4. Query: {
  5. async pages() { return {} }
  6. },
  7. Mutation: {
  8. async pages() { return {} }
  9. },
  10. PageQuery: {
  11. async history(obj, args, context, info) {
  12. return WIKI.models.pageHistory.getHistory({
  13. pageId: args.id,
  14. offsetPage: args.offsetPage || 0,
  15. offsetSize: args.offsetSize || 100
  16. })
  17. },
  18. async search (obj, args, context) {
  19. if (WIKI.data.searchEngine) {
  20. return WIKI.data.searchEngine.query(args.query, args)
  21. } else {
  22. return {
  23. results: [],
  24. suggestions: [],
  25. totalHits: 0
  26. }
  27. }
  28. },
  29. async list (obj, args, context, info) {
  30. return WIKI.models.pages.query().column([
  31. 'id',
  32. 'path',
  33. { locale: 'localeCode' },
  34. 'title',
  35. 'description',
  36. 'isPublished',
  37. 'isPrivate',
  38. 'privateNS',
  39. 'contentType',
  40. 'createdAt',
  41. 'updatedAt'
  42. ])
  43. },
  44. async single (obj, args, context, info) {
  45. let page = await WIKI.models.pages.getPageFromDb(args.id)
  46. if (page) {
  47. return {
  48. ...page,
  49. locale: page.localeCode,
  50. editor: page.editorKey
  51. }
  52. } else {
  53. throw new WIKI.Error.PageNotFound()
  54. }
  55. }
  56. },
  57. PageMutation: {
  58. async create(obj, args, context) {
  59. const page = await WIKI.models.pages.createPage({
  60. ...args,
  61. authorId: context.req.user.id
  62. })
  63. return {
  64. responseResult: graphHelper.generateSuccess('Page created successfully.'),
  65. page
  66. }
  67. },
  68. async delete(obj, args, context) {
  69. await WIKI.models.pages.deletePage({
  70. ...args,
  71. authorId: context.req.user.id
  72. })
  73. return {
  74. responseResult: graphHelper.generateSuccess('Page has been deleted.')
  75. }
  76. },
  77. async update(obj, args, context) {
  78. const page = await WIKI.models.pages.updatePage({
  79. ...args,
  80. authorId: context.req.user.id
  81. })
  82. return {
  83. responseResult: graphHelper.generateSuccess('Page has been updated.'),
  84. page
  85. }
  86. },
  87. async flushCache(obj, args, context) {
  88. try {
  89. await WIKI.models.pages.flushCache()
  90. return {
  91. responseResult: graphHelper.generateSuccess('Pages Cache has been flushed successfully.')
  92. }
  93. } catch (err) {
  94. return graphHelper.generateError(err)
  95. }
  96. },
  97. async migrateToLocale(obj, args, context) {
  98. try {
  99. return {
  100. responseResult: graphHelper.generateSuccess('Migrated all content to target locale successfully.')
  101. }
  102. } catch (err) {
  103. return graphHelper.generateError(err)
  104. }
  105. }
  106. },
  107. Page: {
  108. // comments(pg) {
  109. // return pg.$relatedQuery('comments')
  110. // }
  111. }
  112. }