delete folder

pull/6727/head
Kornel Javor 2 years ago
parent 3efab424fb
commit 59fad3a1bd

@ -80,35 +80,35 @@ module.exports = {
}, },
// new one // new one
async createFolderWithId(obj, args, context) { async createFolderWithId(obj, args, context) {
try { try {
const folderSlug = sanitize(args.slug).toLowerCase(); const folderSlug = sanitize(args.slug).toLowerCase();
const parentFolderId = args.parentFolderId === 0 ? null : args.parentFolderId; const parentFolderId = args.parentFolderId === 0 ? null : args.parentFolderId;
const result = await WIKI.models.assetFolders.query().where({ const result = await WIKI.models.assetFolders.query().where({
parentId: parentFolderId, parentId: parentFolderId,
slug: folderSlug slug: folderSlug
}).first(); }).first();
if (!result) { if (!result) {
const newFolder = await WIKI.models.assetFolders.query().insert({ const newFolder = await WIKI.models.assetFolders.query().insert({
slug: folderSlug, slug: folderSlug,
name: folderSlug, name: folderSlug,
parentId: parentFolderId parentId: parentFolderId
}); });
return {
folderId: newFolder.id,
parentId: newFolder.parentId,
response: graphHelper.generateSuccess('Asset Folder has been created successfully.')
};
} else {
throw new WIKI.Error.AssetFolderExists();
}
} catch (err) {
return { return {
folderId: null, folderId: newFolder.id,
response: graphHelper.generateError(err) parentId: newFolder.parentId,
response: graphHelper.generateSuccess('Asset Folder has been created successfully.')
}; };
} else {
throw new WIKI.Error.AssetFolderExists();
} }
}, } catch (err) {
return {
folderId: null,
response: graphHelper.generateError(err)
};
}
},
/** /**
* Rename an Asset * Rename an Asset
*/ */
@ -239,11 +239,32 @@ module.exports = {
} catch (err) { } catch (err) {
return graphHelper.generateError(err) return graphHelper.generateError(err)
} }
},
async deleteFolder(obj, args, context) {
try {
const folderId = args.id;
// Check if the folder exists
const folder = await WIKI.models.assetFolders.query().findById(folderId);
if (!folder) {
throw new WIKI.Error.AssetFolderInvalid();
}
// Check permissions
const folderPath = folder.slug;
if (!WIKI.auth.checkAccess(context.req.user, ['manage:assets'], { path: folderPath })) {
throw new WIKI.Error.AssetFolderDeleteForbidden();
}
// Delete the folder (must be empty)
await WIKI.models.assetFolders.query().deleteById(folderId);
return {
responseResult: graphHelper.generateSuccess('Asset Folder has been deleted successfully.')
};
} catch (err) {
return graphHelper.generateError(err);
}
} }
} }
// File: {
// folder(fl) {
// return fl.getFolder()
// }
// }
} }

@ -55,6 +55,11 @@ createFolder(
id: Int! id: Int!
): DefaultResponse @auth(requires: ["manage:system", "manage:assets"]) ): DefaultResponse @auth(requires: ["manage:system", "manage:assets"])
deleteFolder(
id: Int!
): DefaultResponse @auth(requires: ["manage:system", "manage:assets"])
flushTempUploads: DefaultResponse @auth(requires: ["manage:system"]) flushTempUploads: DefaultResponse @auth(requires: ["manage:system"])
} }

Loading…
Cancel
Save