asset.graphql 1.53 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
# ===============================================
# ASSETS
# ===============================================

extend type Query {
  assets: AssetQuery
}

extend type Mutation {
  assets: AssetMutation
}

# -----------------------------------------------
# QUERIES
# -----------------------------------------------

type AssetQuery {
  list(
Nick's avatar
Nick committed
19 20
    folderId: Int!
    kind: AssetKind!
21
  ): [AssetItem] @auth(requires: ["manage:system", "read:assets"])
Nick's avatar
Nick committed
22 23 24 25

  folders(
    parentFolderId: Int!
  ): [AssetFolder] @auth(requires: ["manage:system", "read:assets"])
26 27 28 29 30 31 32
}

# -----------------------------------------------
# MUTATIONS
# -----------------------------------------------

type AssetMutation {
Nick's avatar
Nick committed
33 34 35 36 37
  createFolder(
    parentFolderId: Int!
    slug: String!
    name: String
  ): DefaultResponse @auth(requires: ["manage:system", "write:assets"])
Nick's avatar
Nick committed
38 39 40 41 42 43 44 45 46

  renameAsset(
    id: Int!
    filename: String!
  ): DefaultResponse @auth(requires: ["manage:system", "manage:assets"])

  deleteAsset(
    id: Int!
  ): DefaultResponse @auth(requires: ["manage:system", "manage:assets"])
Nick's avatar
Nick committed
47 48

  flushTempUploads: DefaultResponse @auth(requires: ["manage:system"])
49 50 51 52 53 54 55 56
}

# -----------------------------------------------
# TYPES
# -----------------------------------------------

type AssetItem {
  id: Int!
57 58 59 60 61 62 63 64 65 66 67 68 69 70
  filename: String!
  ext: String!
  kind: AssetKind!
  mime: String!
  fileSize: Int!
  metadata: String
  createdAt: Date!
  updatedAt: Date!
  folder: AssetFolder
  author: User
}

type AssetFolder {
  id: Int!
Nick's avatar
Nick committed
71 72
  slug: String!
  name: String
73 74 75 76 77
}

enum AssetKind {
  IMAGE
  BINARY
78
  ALL
79
}