comment.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. const _ = require('lodash')
  2. const graphHelper = require('../../helpers/graph')
  3. /* global WIKI */
  4. module.exports = {
  5. Query: {
  6. async comments() { return {} }
  7. },
  8. Mutation: {
  9. async comments() { return {} }
  10. },
  11. CommentQuery: {
  12. /**
  13. * Fetch list of Comments Providers
  14. */
  15. async providers(obj, args, context, info) {
  16. const providers = await WIKI.models.commentProviders.getProviders()
  17. return providers.map(provider => {
  18. const providerInfo = _.find(WIKI.data.commentProviders, ['key', provider.key]) || {}
  19. return {
  20. ...providerInfo,
  21. ...provider,
  22. config: _.sortBy(_.transform(provider.config, (res, value, key) => {
  23. const configData = _.get(providerInfo.props, key, false)
  24. if (configData) {
  25. res.push({
  26. key,
  27. value: JSON.stringify({
  28. ...configData,
  29. value
  30. })
  31. })
  32. }
  33. }, []), 'key')
  34. }
  35. })
  36. },
  37. /**
  38. * Fetch list of comments for a page
  39. */
  40. async list (obj, args, context) {
  41. return []
  42. }
  43. },
  44. CommentMutation: {
  45. /**
  46. * Create New Comment
  47. */
  48. async create (obj, args, context) {
  49. try {
  50. // WIKI.data.commentProvider.create({
  51. // ...args,
  52. // user: context.req.user
  53. // })
  54. return {
  55. responseResult: graphHelper.generateSuccess('New comment posted successfully')
  56. }
  57. } catch (err) {
  58. return graphHelper.generateError(err)
  59. }
  60. },
  61. /**
  62. * Update Comments Providers
  63. */
  64. async updateProviders(obj, args, context) {
  65. try {
  66. for (let provider of args.providers) {
  67. await WIKI.models.commentProviders.query().patch({
  68. isEnabled: provider.isEnabled,
  69. config: _.reduce(provider.config, (result, value, key) => {
  70. _.set(result, `${value.key}`, _.get(JSON.parse(value.value), 'v', null))
  71. return result
  72. }, {})
  73. }).where('key', provider.key)
  74. }
  75. await WIKI.models.commentProviders.initProvider()
  76. return {
  77. responseResult: graphHelper.generateSuccess('Comment Providers updated successfully')
  78. }
  79. } catch (err) {
  80. return graphHelper.generateError(err)
  81. }
  82. }
  83. }
  84. }