asset.js 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. const sanitize = require('sanitize-filename')
  2. const graphHelper = require('../../helpers/graph')
  3. /* global WIKI */
  4. module.exports = {
  5. Query: {
  6. async assets() { return {} }
  7. },
  8. Mutation: {
  9. async assets() { return {} }
  10. },
  11. AssetQuery: {
  12. async list(obj, args, context) {
  13. let cond = {
  14. folderId: args.folderId === 0 ? null : args.folderId
  15. }
  16. if (args.kind !== 'ALL') {
  17. cond.kind = args.kind.toLowerCase()
  18. }
  19. const result = await WIKI.models.assets.query().where(cond)
  20. return result.map(a => ({
  21. ...a,
  22. kind: a.kind.toUpperCase()
  23. }))
  24. },
  25. async folders(obj, args, context) {
  26. const result = await WIKI.models.assetFolders.query().where({
  27. parentId: args.parentFolderId === 0 ? null : args.parentFolderId
  28. })
  29. // TODO: Filter by page rules
  30. return result
  31. }
  32. },
  33. AssetMutation: {
  34. async createFolder(obj, args, context) {
  35. try {
  36. const folderSlug = sanitize(args.slug).toLowerCase()
  37. const parentFolderId = args.parentFolderId === 0 ? null : args.parentFolderId
  38. const result = await WIKI.models.assetFolders.query().where({
  39. parentId: parentFolderId,
  40. slug: folderSlug
  41. }).first()
  42. if (!result) {
  43. await WIKI.models.assetFolders.query().insert({
  44. slug: folderSlug,
  45. name: folderSlug,
  46. parentId: parentFolderId
  47. })
  48. return {
  49. responseResult: graphHelper.generateSuccess('Asset Folder has been created successfully.')
  50. }
  51. } else {
  52. throw new WIKI.Error.AssetFolderExists()
  53. }
  54. } catch (err) {
  55. return graphHelper.generateError(err)
  56. }
  57. }
  58. // deleteFile(obj, args) {
  59. // return WIKI.models.File.destroy({
  60. // where: {
  61. // id: args.id
  62. // },
  63. // limit: 1
  64. // })
  65. // },
  66. // renameFile(obj, args) {
  67. // return WIKI.models.File.update({
  68. // filename: args.filename
  69. // }, {
  70. // where: { id: args.id }
  71. // })
  72. // },
  73. // moveFile(obj, args) {
  74. // return WIKI.models.File.findById(args.fileId).then(fl => {
  75. // if (!fl) {
  76. // throw new gql.GraphQLError('Invalid File ID')
  77. // }
  78. // return WIKI.models.Folder.findById(args.folderId).then(fld => {
  79. // if (!fld) {
  80. // throw new gql.GraphQLError('Invalid Folder ID')
  81. // }
  82. // return fl.setFolder(fld)
  83. // })
  84. // })
  85. // }
  86. }
  87. // File: {
  88. // folder(fl) {
  89. // return fl.getFolder()
  90. // }
  91. // }
  92. }