rendering.js 1.6 KB

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