rendering.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. const _ = require('lodash')
  2. const graphHelper = require('../../helpers/graph')
  3. /* global WIKI */
  4. module.exports = {
  5. Query: {
  6. async renderers(obj, args, context, info) {
  7. let renderers = await WIKI.models.renderers.getRenderers()
  8. renderers = renderers.map(rdr => {
  9. const rendererInfo = _.find(WIKI.data.renderers, ['key', rdr.key]) || {}
  10. return {
  11. ...rendererInfo,
  12. ...rdr,
  13. config: _.sortBy(_.transform(rdr.config, (res, value, key) => {
  14. const configData = _.get(rendererInfo.props, key, false)
  15. if (configData) {
  16. res.push({
  17. key,
  18. value: JSON.stringify({
  19. ...configData,
  20. value
  21. })
  22. })
  23. }
  24. }, []), 'key')
  25. }
  26. })
  27. // if (args.filter) { renderers = graphHelper.filter(renderers, args.filter) }
  28. if (args.orderBy) { renderers = _.sortBy(renderers, [args.orderBy]) }
  29. return renderers
  30. }
  31. },
  32. Mutation: {
  33. async updateRenderers(obj, args, context) {
  34. try {
  35. for (let rdr of args.renderers) {
  36. await WIKI.models.renderers.query().patch({
  37. isEnabled: rdr.isEnabled,
  38. config: _.reduce(rdr.config, (result, value, key) => {
  39. _.set(result, `${value.key}`, _.get(JSON.parse(value.value), 'v', null))
  40. return result
  41. }, {})
  42. }).where('key', rdr.key)
  43. }
  44. return {
  45. responseResult: graphHelper.generateSuccess('Renderers updated successfully')
  46. }
  47. } catch (err) {
  48. return graphHelper.generateError(err)
  49. }
  50. }
  51. }
  52. }