# =============================================== # ASSETS # =============================================== extend type Query { assets: AssetQuery } extend type Mutation { assets: AssetMutation } # ----------------------------------------------- # QUERIES # ----------------------------------------------- type AssetQuery { list( folderId: Int! kind: AssetKind! ): [AssetItem] @auth(requires: ["manage:system", "read:assets"]) folders( parentFolderId: Int! ): [AssetFolder] @auth(requires: ["manage:system", "read:assets"]) } # ----------------------------------------------- # MUTATIONS # ----------------------------------------------- type AssetMutation { createFolder( parentFolderId: Int! slug: String! name: String ): DefaultResponse @auth(requires: ["manage:system", "write:assets"]) renameAsset( id: Int! filename: String! ): DefaultResponse @auth(requires: ["manage:system", "manage:assets"]) deleteAsset( id: Int! ): DefaultResponse @auth(requires: ["manage:system", "manage:assets"]) flushTempUploads: DefaultResponse @auth(requires: ["manage:system"]) } # ----------------------------------------------- # TYPES # ----------------------------------------------- type AssetItem { id: Int! filename: String! ext: String! kind: AssetKind! mime: String! fileSize: Int! metadata: String createdAt: Date! updatedAt: Date! folder: AssetFolder author: User } type AssetFolder { id: Int! slug: String! name: String } enum AssetKind { IMAGE BINARY ALL }