|
|
|
# ===============================================
|
|
|
|
# TREE
|
|
|
|
# ===============================================
|
|
|
|
|
|
|
|
extend type Query {
|
|
|
|
"""
|
|
|
|
Browse the tree.
|
|
|
|
Must provide either `parentId` or a combination of `parentPath` and `locale`.
|
|
|
|
"""
|
|
|
|
tree(
|
|
|
|
siteId: UUID!
|
|
|
|
parentId: UUID
|
|
|
|
parentPath: String
|
|
|
|
locale: String
|
|
|
|
types: [TreeItemType]
|
|
|
|
limit: Int
|
|
|
|
offset: Int
|
|
|
|
orderBy: TreeOrderBy
|
|
|
|
orderByDirection: OrderByDirection
|
|
|
|
"""
|
|
|
|
How many levels of children to include. Defaults to 1.
|
|
|
|
"""
|
|
|
|
depth: Int
|
|
|
|
"""
|
|
|
|
Include all parent folders up to root
|
|
|
|
"""
|
|
|
|
includeAncestors: Boolean
|
|
|
|
"""
|
|
|
|
Include all folders at root level
|
|
|
|
"""
|
|
|
|
includeRootFolders: Boolean
|
|
|
|
): [TreeItem]
|
|
|
|
folderById(
|
|
|
|
id: UUID!
|
|
|
|
): TreeItemFolder
|
|
|
|
folderByPath(
|
|
|
|
siteId: UUID!
|
|
|
|
locale: String!
|
|
|
|
path: String!
|
|
|
|
): TreeItemFolder
|
|
|
|
}
|
|
|
|
|
|
|
|
extend type Mutation {
|
|
|
|
createFolder(
|
|
|
|
siteId: UUID!
|
|
|
|
locale: String!
|
|
|
|
parentId: UUID
|
|
|
|
parentPath: String
|
|
|
|
pathName: String!
|
|
|
|
title: String!
|
|
|
|
): DefaultResponse
|
|
|
|
deleteFolder(
|
|
|
|
folderId: UUID!
|
|
|
|
): DefaultResponse
|
|
|
|
duplicateFolder(
|
|
|
|
folderId: UUID!
|
|
|
|
targetParentId: UUID
|
|
|
|
targetPathName: String!
|
|
|
|
targetTitle: String!
|
|
|
|
): DefaultResponse
|
|
|
|
moveFolder(
|
|
|
|
folderId: UUID!
|
|
|
|
targetParentId: UUID
|
|
|
|
): DefaultResponse
|
|
|
|
renameFolder(
|
|
|
|
folderId: UUID!
|
|
|
|
pathName: String!
|
|
|
|
title: String!
|
|
|
|
): DefaultResponse
|
|
|
|
}
|
|
|
|
|
|
|
|
# -----------------------------------------------
|
|
|
|
# TYPES
|
|
|
|
# -----------------------------------------------
|
|
|
|
|
|
|
|
enum TreeItemType {
|
|
|
|
asset
|
|
|
|
folder
|
|
|
|
page
|
|
|
|
}
|
|
|
|
|
|
|
|
enum TreeOrderBy {
|
|
|
|
createdAt
|
|
|
|
fileName
|
|
|
|
title
|
|
|
|
updatedAt
|
|
|
|
}
|
|
|
|
|
|
|
|
interface TreeItem {
|
|
|
|
id: UUID
|
|
|
|
folderPath: String
|
|
|
|
fileName: String
|
|
|
|
title: String
|
|
|
|
}
|
|
|
|
|
|
|
|
type TreeItemFolder implements TreeItem {
|
|
|
|
id: UUID
|
|
|
|
childrenCount: Int
|
|
|
|
depth: Int
|
|
|
|
fileName: String
|
|
|
|
folderPath: String
|
|
|
|
title: String
|
|
|
|
isAncestor: Boolean
|
|
|
|
}
|
|
|
|
|
|
|
|
type TreeItemPage implements TreeItem {
|
|
|
|
id: UUID
|
|
|
|
createdAt: Date
|
|
|
|
depth: Int
|
|
|
|
fileName: String
|
|
|
|
folderPath: String
|
|
|
|
editor: String
|
|
|
|
pageType: String
|
|
|
|
title: String
|
|
|
|
updatedAt: Date
|
|
|
|
}
|
|
|
|
|
|
|
|
type TreeItemAsset implements TreeItem {
|
|
|
|
id: UUID
|
|
|
|
createdAt: Date
|
|
|
|
depth: Int
|
|
|
|
fileName: String
|
|
|
|
# In Bytes
|
|
|
|
fileSize: Int
|
|
|
|
fileType: String
|
|
|
|
folderPath: String
|
|
|
|
title: String
|
|
|
|
updatedAt: Date
|
|
|
|
}
|