feat: image upload + list root assets (wip)

This commit is contained in:
Nick
2019-05-13 01:15:27 -04:00
parent 89c07a716a
commit 6b886b6e3f
23 changed files with 526 additions and 171 deletions

View File

@@ -7,7 +7,7 @@ const PubSub = require('graphql-subscriptions').PubSub
const { LEVEL, MESSAGE } = require('triple-beam')
const Transport = require('winston-transport')
const { createRateLimitTypeDef } = require('graphql-rate-limit-directive')
const { GraphQLUpload } = require('graphql-upload')
// const { GraphQLUpload } = require('graphql-upload')
/* global WIKI */
@@ -28,7 +28,7 @@ schemas.forEach(schema => {
// Resolvers
let resolvers = {
Upload: GraphQLUpload
// Upload: GraphQLUpload
}
const resolversObj = _.values(autoload(path.join(WIKI.SERVERPATH, 'graph/resolvers')))
resolversObj.forEach(resolver => {

View File

@@ -0,0 +1,60 @@
/* global WIKI */
const gql = require('graphql')
module.exports = {
Query: {
async assets() { return {} }
},
Mutation: {
async assets() { return {} }
},
AssetQuery: {
async list(obj, args, context) {
const result = await WIKI.models.assets.query().where({
folderId: null,
kind: args.kind.toLowerCase()
})
return result.map(a => ({
...a,
kind: a.kind.toUpperCase()
}))
}
},
AssetMutation: {
// deleteFile(obj, args) {
// return WIKI.models.File.destroy({
// where: {
// id: args.id
// },
// limit: 1
// })
// },
// renameFile(obj, args) {
// return WIKI.models.File.update({
// filename: args.filename
// }, {
// where: { id: args.id }
// })
// },
// moveFile(obj, args) {
// return WIKI.models.File.findById(args.fileId).then(fl => {
// if (!fl) {
// throw new gql.GraphQLError('Invalid File ID')
// }
// return WIKI.models.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()
// }
// }
}

View File

@@ -1,51 +0,0 @@
/* global WIKI */
const gql = require('graphql')
module.exports = {
// Query: {
// files(obj, args, context, info) {
// return WIKI.models.File.findAll({ where: args })
// }
// },
// Mutation: {
// uploadFile(obj, args) {
// // todo
// return WIKI.models.File.create(args)
// },
// deleteFile(obj, args) {
// return WIKI.models.File.destroy({
// where: {
// id: args.id
// },
// limit: 1
// })
// },
// renameFile(obj, args) {
// return WIKI.models.File.update({
// filename: args.filename
// }, {
// where: { id: args.id }
// })
// },
// moveFile(obj, args) {
// return WIKI.models.File.findById(args.fileId).then(fl => {
// if (!fl) {
// throw new gql.GraphQLError('Invalid File ID')
// }
// return WIKI.models.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()
// }
// }
}

View File

@@ -17,8 +17,8 @@ extend type Mutation {
type AssetQuery {
list(
root: String
kind: [AssetKind]
): [AssetItem]
kind: AssetKind
): [AssetItem] @auth(requires: ["manage:system", "read:assets"])
}
# -----------------------------------------------
@@ -37,6 +37,20 @@ type AssetMutation {
type AssetItem {
id: Int!
filename: String!
ext: String!
kind: AssetKind!
mime: String!
fileSize: Int!
metadata: String
createdAt: Date!
updatedAt: Date!
folder: AssetFolder
author: User
}
type AssetFolder {
id: Int!
}
enum AssetKind {