95 lines
2.6 KiB
JavaScript
95 lines
2.6 KiB
JavaScript
const sanitize = require('sanitize-filename')
|
|
const graphHelper = require('../../helpers/graph')
|
|
|
|
/* global WIKI */
|
|
|
|
module.exports = {
|
|
Query: {
|
|
async assets() { return {} }
|
|
},
|
|
Mutation: {
|
|
async assets() { return {} }
|
|
},
|
|
AssetQuery: {
|
|
async list(obj, args, context) {
|
|
let cond = {
|
|
folderId: args.folderId === 0 ? null : args.folderId
|
|
}
|
|
if (args.kind !== 'ALL') {
|
|
cond.kind = args.kind.toLowerCase()
|
|
}
|
|
const result = await WIKI.models.assets.query().where(cond)
|
|
return result.map(a => ({
|
|
...a,
|
|
kind: a.kind.toUpperCase()
|
|
}))
|
|
},
|
|
async folders(obj, args, context) {
|
|
const result = await WIKI.models.assetFolders.query().where({
|
|
parentId: args.parentFolderId === 0 ? null : args.parentFolderId
|
|
})
|
|
// TODO: Filter by page rules
|
|
return result
|
|
}
|
|
},
|
|
AssetMutation: {
|
|
async createFolder(obj, args, context) {
|
|
try {
|
|
const folderSlug = sanitize(args.slug).toLowerCase()
|
|
const parentFolderId = args.parentFolderId === 0 ? null : args.parentFolderId
|
|
const result = await WIKI.models.assetFolders.query().where({
|
|
parentId: parentFolderId,
|
|
slug: folderSlug
|
|
}).first()
|
|
if (!result) {
|
|
await WIKI.models.assetFolders.query().insert({
|
|
slug: folderSlug,
|
|
name: folderSlug,
|
|
parentId: parentFolderId
|
|
})
|
|
return {
|
|
responseResult: graphHelper.generateSuccess('Asset Folder has been created successfully.')
|
|
}
|
|
} else {
|
|
throw new WIKI.Error.AssetFolderExists()
|
|
}
|
|
} catch (err) {
|
|
return graphHelper.generateError(err)
|
|
}
|
|
}
|
|
// 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()
|
|
// }
|
|
// }
|
|
}
|