introduced createFolderWithId and get all folders

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

@ -31,6 +31,13 @@ module.exports = {
kind: a.kind.toUpperCase() kind: a.kind.toUpperCase()
})) }))
}, },
async allFolders(obj, args, context) {
const results = await WIKI.models.assetFolders.query();
return results.filter(folder => {
const path = folder.slug;
return WIKI.auth.checkAccess(context.req.user, ['read:assets'], { path });
});
},
async folders(obj, args, context) { async folders(obj, args, context) {
const results = await WIKI.models.assetFolders.query().where({ const results = await WIKI.models.assetFolders.query().where({
parentId: args.parentFolderId === 0 ? null : args.parentFolderId parentId: args.parentFolderId === 0 ? null : args.parentFolderId
@ -71,6 +78,37 @@ module.exports = {
return graphHelper.generateError(err) return graphHelper.generateError(err)
} }
}, },
// new one
async createFolderWithId(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) {
const newFolder = await WIKI.models.assetFolders.query().insert({
slug: folderSlug,
name: folderSlug,
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 {
folderId: null,
response: graphHelper.generateError(err)
};
}
},
/** /**
* Rename an Asset * Rename an Asset
*/ */
@ -208,4 +246,4 @@ module.exports = {
// return fl.getFolder() // return fl.getFolder()
// } // }
// } // }
} }

@ -23,6 +23,8 @@ type AssetQuery {
folders( folders(
parentFolderId: Int! parentFolderId: Int!
): [AssetFolder] @auth(requires: ["manage:system", "read:assets"]) ): [AssetFolder] @auth(requires: ["manage:system", "read:assets"])
allFolders: [AssetFolder] @auth(requires: ["manage:system", "read:assets"])
} }
# ----------------------------------------------- # -----------------------------------------------
@ -30,12 +32,20 @@ type AssetQuery {
# ----------------------------------------------- # -----------------------------------------------
type AssetMutation { type AssetMutation {
createFolder( createFolder(
parentFolderId: Int! parentFolderId: Int!
slug: String! slug: String!
name: String name: String
): DefaultResponse @auth(requires: ["manage:system", "write:assets"]) ): DefaultResponse @auth(requires: ["manage:system", "write:assets"])
createFolderWithId(
parentFolderId: Int!
slug: String!
name: String
): FolderCreationResponse @auth(requires: ["manage:system", "write:assets"])
# DefaultResponse @auth(requires: ["manage:system", "write:assets"])
renameAsset( renameAsset(
id: Int! id: Int!
filename: String! filename: String!
@ -70,6 +80,7 @@ type AssetFolder {
id: Int! id: Int!
slug: String! slug: String!
name: String name: String
parentId: Int
} }
enum AssetKind { enum AssetKind {
@ -77,3 +88,9 @@ enum AssetKind {
BINARY BINARY
ALL ALL
} }
type FolderCreationResponse {
folderId: Int
response: DefaultResponse
parentId: Int
}

Loading…
Cancel
Save