resolvers-file.js 1.03 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51

/* global wiki */

const gql = require('graphql')

module.exports = {
  Query: {
    files(obj, args, context, info) {
      return wiki.db.File.findAll({ where: args })
    }
  },
  Mutation: {
    uploadFile(obj, args) {
      // todo
      return wiki.db.File.create(args)
    },
    deleteFile(obj, args) {
      return wiki.db.File.destroy({
        where: {
          id: args.id
        },
        limit: 1
      })
    },
    renameFile(obj, args) {
      return wiki.db.File.update({
        filename: args.filename
      }, {
        where: { id: args.id }
      })
    },
    moveFile(obj, args) {
      return wiki.db.File.findById(args.fileId).then(fl => {
        if (!fl) {
          throw new gql.GraphQLError('Invalid File ID')
        }
        return wiki.db.Folder.findById(args.folderId).then(fld => {
          if (!fld) {
            throw new gql.GraphQLError('Invalid Folder ID')
          }
          return fl.setFolder(fld)
        })
      })
    }
  },
  File: {
    folder(fl) {
      return fl.getFolder()
    }
  }
}