feat: image upload + list root assets (wip)
This commit is contained in:
@@ -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 => {
|
||||
|
60
server/graph/resolvers/asset.js
Normal file
60
server/graph/resolvers/asset.js
Normal 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()
|
||||
// }
|
||||
// }
|
||||
}
|
@@ -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()
|
||||
// }
|
||||
// }
|
||||
}
|
@@ -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 {
|
||||
|
Reference in New Issue
Block a user