resolvers-file.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. 'use strict'
  2. /* global wiki */
  3. const gql = require('graphql')
  4. module.exports = {
  5. Query: {
  6. files(obj, args, context, info) {
  7. return wiki.db.File.findAll({ where: args })
  8. }
  9. },
  10. Mutation: {
  11. uploadFile(obj, args) {
  12. // todo
  13. return wiki.db.File.create(args)
  14. },
  15. deleteFile(obj, args) {
  16. return wiki.db.File.destroy({
  17. where: {
  18. id: args.id
  19. },
  20. limit: 1
  21. })
  22. },
  23. renameFile(obj, args) {
  24. return wiki.db.File.update({
  25. filename: args.filename
  26. }, {
  27. where: { id: args.id }
  28. })
  29. },
  30. moveFile(obj, args) {
  31. return wiki.db.File.findById(args.fileId).then(fl => {
  32. if (!fl) {
  33. throw new gql.GraphQLError('Invalid File ID')
  34. }
  35. return wiki.db.Folder.findById(args.folderId).then(fld => {
  36. if (!fld) {
  37. throw new gql.GraphQLError('Invalid Folder ID')
  38. }
  39. return fl.setFolder(fld)
  40. })
  41. })
  42. }
  43. },
  44. File: {
  45. folder(fl) {
  46. return fl.getFolder()
  47. }
  48. }
  49. }