tree.graphql 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. # ===============================================
  2. # TREE
  3. # ===============================================
  4. extend type Query {
  5. tree(
  6. siteId: UUID!
  7. parentId: UUID
  8. parentPath: String
  9. types: [TreeItemType]
  10. limit: Int
  11. offset: Int
  12. orderBy: TreeOrderBy
  13. orderByDirection: OrderByDirection
  14. depth: Int
  15. includeAncestors: Boolean
  16. includeRootItems: Boolean
  17. ): [TreeItem]
  18. folderById(
  19. id: UUID!
  20. ): TreeItemFolder
  21. folderByPath(
  22. siteId: UUID!
  23. locale: String!
  24. path: String!
  25. ): TreeItemFolder
  26. }
  27. extend type Mutation {
  28. createFolder(
  29. siteId: UUID!
  30. locale: String!
  31. parentId: UUID
  32. parentPath: String
  33. pathName: String!
  34. title: String!
  35. ): DefaultResponse
  36. deleteFolder(
  37. folderId: UUID!
  38. ): DefaultResponse
  39. duplicateFolder(
  40. folderId: UUID!
  41. targetParentId: UUID
  42. targetPathName: String!
  43. targetTitle: String!
  44. ): DefaultResponse
  45. moveFolder(
  46. folderId: UUID!
  47. targetParentId: UUID
  48. ): DefaultResponse
  49. renameFolder(
  50. folderId: UUID!
  51. pathName: String!
  52. title: String!
  53. ): DefaultResponse
  54. }
  55. # -----------------------------------------------
  56. # TYPES
  57. # -----------------------------------------------
  58. enum TreeItemType {
  59. asset
  60. folder
  61. page
  62. }
  63. enum TreeOrderBy {
  64. createdAt
  65. fileName
  66. title
  67. updatedAt
  68. }
  69. type TreeItemFolder {
  70. id: UUID
  71. childrenCount: Int
  72. depth: Int
  73. fileName: String
  74. folderPath: String
  75. title: String
  76. }
  77. type TreeItemPage {
  78. id: UUID
  79. createdAt: Date
  80. depth: Int
  81. fileName: String
  82. folderPath: String
  83. editor: String
  84. pageType: String
  85. title: String
  86. updatedAt: Date
  87. }
  88. type TreeItemAsset {
  89. id: UUID
  90. createdAt: Date
  91. depth: Int
  92. fileName: String
  93. # In Bytes
  94. fileSize: Int
  95. fileType: String
  96. folderPath: String
  97. title: String
  98. updatedAt: Date
  99. }
  100. union TreeItem = TreeItemFolder | TreeItemPage | TreeItemAsset