Add urql to frontend
This commit is contained in:
parent
c694b1d3e5
commit
84d17ff732
|
|
@ -11,7 +11,9 @@
|
|||
"@headlessui/vue": "^1.6.7",
|
||||
"@sentry/tracing": "^7.20.0",
|
||||
"@sentry/vue": "^7.20.0",
|
||||
"@urql/vue": "^1.0.2",
|
||||
"d3": "^7.6.1",
|
||||
"graphql": "^16.6.0",
|
||||
"lodash": "^4.17.21",
|
||||
"loglevel": "^1.8.0",
|
||||
"pinia": "^2.0.21",
|
||||
|
|
@ -261,6 +263,14 @@
|
|||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@graphql-typed-document-node/core": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz",
|
||||
"integrity": "sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg==",
|
||||
"peerDependencies": {
|
||||
"graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@hapi/hoek": {
|
||||
"version": "9.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
|
||||
|
|
@ -1226,6 +1236,31 @@
|
|||
"url": "https://opencollective.com/typescript-eslint"
|
||||
}
|
||||
},
|
||||
"node_modules/@urql/core": {
|
||||
"version": "3.0.5",
|
||||
"resolved": "https://registry.npmjs.org/@urql/core/-/core-3.0.5.tgz",
|
||||
"integrity": "sha512-6/1HG+WEAcPs+hXSFnxWBTWkNUwa8dj2cHysWokMaFIbAioGtUaSdxp2q9FDMtWAIGdc640NFSt2B8itGLdoAA==",
|
||||
"dependencies": {
|
||||
"@graphql-typed-document-node/core": "^3.1.1",
|
||||
"wonka": "^6.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@urql/vue": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@urql/vue/-/vue-1.0.2.tgz",
|
||||
"integrity": "sha512-TBfMfu+aGmuudqAz4lE+VxlN+2y5xM0ubiQCTFsojCB4CkSa/D0n914ibhqbDtDzs2Ww5dlB/vof1ep1LGRMow==",
|
||||
"dependencies": {
|
||||
"@urql/core": "^3.0.0",
|
||||
"wonka": "^6.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0",
|
||||
"vue": "^2.7.0 || ^3.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@vitejs/plugin-vue": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz",
|
||||
|
|
@ -4077,6 +4112,14 @@
|
|||
"integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/graphql": {
|
||||
"version": "16.6.0",
|
||||
"resolved": "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz",
|
||||
"integrity": "sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==",
|
||||
"engines": {
|
||||
"node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/has": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
|
||||
|
|
@ -6909,6 +6952,11 @@
|
|||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/wonka": {
|
||||
"version": "6.1.1",
|
||||
"resolved": "https://registry.npmjs.org/wonka/-/wonka-6.1.1.tgz",
|
||||
"integrity": "sha512-shBtyZ0KFvUadtnDGlTRA4mF4pgcRoyZKikdputKhmShoXWcZDvlg6CUw6Jx9nTL7Ub8QUJoIarPpxdlosg9cw=="
|
||||
},
|
||||
"node_modules/word-wrap": {
|
||||
"version": "1.2.3",
|
||||
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
|
||||
|
|
@ -7201,6 +7249,12 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"@graphql-typed-document-node/core": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz",
|
||||
"integrity": "sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg==",
|
||||
"requires": {}
|
||||
},
|
||||
"@hapi/hoek": {
|
||||
"version": "9.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
|
||||
|
|
@ -7985,6 +8039,24 @@
|
|||
"eslint-visitor-keys": "^3.3.0"
|
||||
}
|
||||
},
|
||||
"@urql/core": {
|
||||
"version": "3.0.5",
|
||||
"resolved": "https://registry.npmjs.org/@urql/core/-/core-3.0.5.tgz",
|
||||
"integrity": "sha512-6/1HG+WEAcPs+hXSFnxWBTWkNUwa8dj2cHysWokMaFIbAioGtUaSdxp2q9FDMtWAIGdc640NFSt2B8itGLdoAA==",
|
||||
"requires": {
|
||||
"@graphql-typed-document-node/core": "^3.1.1",
|
||||
"wonka": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"@urql/vue": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@urql/vue/-/vue-1.0.2.tgz",
|
||||
"integrity": "sha512-TBfMfu+aGmuudqAz4lE+VxlN+2y5xM0ubiQCTFsojCB4CkSa/D0n914ibhqbDtDzs2Ww5dlB/vof1ep1LGRMow==",
|
||||
"requires": {
|
||||
"@urql/core": "^3.0.0",
|
||||
"wonka": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"@vitejs/plugin-vue": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz",
|
||||
|
|
@ -10071,6 +10143,11 @@
|
|||
"integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
|
||||
"dev": true
|
||||
},
|
||||
"graphql": {
|
||||
"version": "16.6.0",
|
||||
"resolved": "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz",
|
||||
"integrity": "sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw=="
|
||||
},
|
||||
"has": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
|
||||
|
|
@ -11979,6 +12056,11 @@
|
|||
"is-typed-array": "^1.1.10"
|
||||
}
|
||||
},
|
||||
"wonka": {
|
||||
"version": "6.1.1",
|
||||
"resolved": "https://registry.npmjs.org/wonka/-/wonka-6.1.1.tgz",
|
||||
"integrity": "sha512-shBtyZ0KFvUadtnDGlTRA4mF4pgcRoyZKikdputKhmShoXWcZDvlg6CUw6Jx9nTL7Ub8QUJoIarPpxdlosg9cw=="
|
||||
},
|
||||
"word-wrap": {
|
||||
"version": "1.2.3",
|
||||
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
|
||||
|
|
|
|||
|
|
@ -17,7 +17,9 @@
|
|||
"@headlessui/vue": "^1.6.7",
|
||||
"@sentry/tracing": "^7.20.0",
|
||||
"@sentry/vue": "^7.20.0",
|
||||
"@urql/vue": "^1.0.2",
|
||||
"d3": "^7.6.1",
|
||||
"graphql": "^16.6.0",
|
||||
"lodash": "^4.17.21",
|
||||
"loglevel": "^1.8.0",
|
||||
"pinia": "^2.0.21",
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@ import * as log from "loglevel";
|
|||
import { createPinia } from "pinia";
|
||||
import { createApp, markRaw } from "vue";
|
||||
|
||||
import urql from "@urql/vue";
|
||||
|
||||
import App from "./App.vue";
|
||||
import { loadLocaleMessages, setupI18n } from "./i18n";
|
||||
import router from "./router";
|
||||
|
|
@ -42,6 +44,9 @@ loadLocaleMessages(i18n, "de").then(() => {
|
|||
});
|
||||
app.use(pinia);
|
||||
app.use(i18n);
|
||||
app.use(urql, {
|
||||
url: "http://localhost:8000/server/graphql/",
|
||||
});
|
||||
|
||||
app.mount("#app");
|
||||
});
|
||||
|
|
|
|||
|
|
@ -0,0 +1,903 @@
|
|||
schema {
|
||||
query: Query
|
||||
}
|
||||
|
||||
type BlockQuoteBlock implements StreamFieldInterface {
|
||||
id: String
|
||||
blockType: String!
|
||||
field: String!
|
||||
rawValue: String!
|
||||
value: String!
|
||||
}
|
||||
|
||||
type BooleanBlock implements StreamFieldInterface {
|
||||
id: String
|
||||
blockType: String!
|
||||
field: String!
|
||||
rawValue: String!
|
||||
value: Boolean!
|
||||
}
|
||||
|
||||
type CharBlock implements StreamFieldInterface {
|
||||
id: String
|
||||
blockType: String!
|
||||
field: String!
|
||||
rawValue: String!
|
||||
value: String!
|
||||
}
|
||||
|
||||
type ChoiceBlock implements StreamFieldInterface {
|
||||
id: String
|
||||
blockType: String!
|
||||
field: String!
|
||||
rawValue: String!
|
||||
value: String!
|
||||
choices: [ChoiceOption!]!
|
||||
}
|
||||
|
||||
type ChoiceOption {
|
||||
key: String!
|
||||
value: String!
|
||||
}
|
||||
|
||||
type Circle implements PageInterface {
|
||||
id: ID
|
||||
path: String!
|
||||
depth: Int
|
||||
numchild: Int!
|
||||
translationKey: UUID!
|
||||
title: String!
|
||||
draftTitle: String!
|
||||
slug: String!
|
||||
contentType: String!
|
||||
live: Boolean!
|
||||
hasUnpublishedChanges: Boolean!
|
||||
urlPath: String!
|
||||
owner: User
|
||||
seoTitle: String!
|
||||
showInMenus: Boolean!
|
||||
searchDescription: String
|
||||
goLiveAt: DateTime
|
||||
expireAt: DateTime
|
||||
expired: Boolean!
|
||||
locked: Boolean
|
||||
lockedAt: DateTime
|
||||
lockedBy: User
|
||||
firstPublishedAt: DateTime
|
||||
lastPublishedAt: DateTime
|
||||
latestRevisionCreatedAt: DateTime
|
||||
aliasOf: Page
|
||||
pageType: String
|
||||
url: String
|
||||
parent: PageInterface
|
||||
children(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
siblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
nextSiblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
previousSiblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
descendants(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
ancestors(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
}
|
||||
|
||||
type CollectionObjectType {
|
||||
id: ID!
|
||||
path: String!
|
||||
depth: Int!
|
||||
numchild: Int!
|
||||
name: String!
|
||||
descendants: [CollectionObjectType]!
|
||||
ancestors: [CollectionObjectType]!
|
||||
}
|
||||
|
||||
type CompetencePage implements PageInterface {
|
||||
id: ID
|
||||
path: String!
|
||||
depth: Int
|
||||
numchild: Int!
|
||||
translationKey: UUID!
|
||||
title: String!
|
||||
draftTitle: String!
|
||||
slug: String!
|
||||
contentType: String!
|
||||
live: Boolean!
|
||||
hasUnpublishedChanges: Boolean!
|
||||
urlPath: String!
|
||||
owner: User
|
||||
seoTitle: String!
|
||||
showInMenus: Boolean!
|
||||
searchDescription: String
|
||||
goLiveAt: DateTime
|
||||
expireAt: DateTime
|
||||
expired: Boolean!
|
||||
locked: Boolean
|
||||
lockedAt: DateTime
|
||||
lockedBy: User
|
||||
firstPublishedAt: DateTime
|
||||
lastPublishedAt: DateTime
|
||||
latestRevisionCreatedAt: DateTime
|
||||
aliasOf: Page
|
||||
pageType: String
|
||||
url: String
|
||||
parent: PageInterface
|
||||
children(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
siblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
nextSiblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
previousSiblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
descendants(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
ancestors(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
}
|
||||
|
||||
type CompetenceProfilePage implements PageInterface {
|
||||
id: ID
|
||||
path: String!
|
||||
depth: Int
|
||||
numchild: Int!
|
||||
translationKey: UUID!
|
||||
title: String!
|
||||
draftTitle: String!
|
||||
slug: String!
|
||||
contentType: String!
|
||||
live: Boolean!
|
||||
hasUnpublishedChanges: Boolean!
|
||||
urlPath: String!
|
||||
owner: User
|
||||
seoTitle: String!
|
||||
showInMenus: Boolean!
|
||||
searchDescription: String
|
||||
goLiveAt: DateTime
|
||||
expireAt: DateTime
|
||||
expired: Boolean!
|
||||
locked: Boolean
|
||||
lockedAt: DateTime
|
||||
lockedBy: User
|
||||
firstPublishedAt: DateTime
|
||||
lastPublishedAt: DateTime
|
||||
latestRevisionCreatedAt: DateTime
|
||||
aliasOf: Page
|
||||
pageType: String
|
||||
url: String
|
||||
parent: PageInterface
|
||||
children(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
siblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
nextSiblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
previousSiblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
descendants(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
ancestors(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
}
|
||||
|
||||
type Course {
|
||||
id: ID
|
||||
}
|
||||
|
||||
type CourseCategory {
|
||||
id: ID
|
||||
}
|
||||
|
||||
type CourseCompletion {
|
||||
id: ID
|
||||
}
|
||||
|
||||
type CoursePage implements PageInterface {
|
||||
id: ID
|
||||
path: String!
|
||||
depth: Int
|
||||
numchild: Int!
|
||||
translationKey: UUID!
|
||||
title: String!
|
||||
draftTitle: String!
|
||||
slug: String!
|
||||
contentType: String!
|
||||
live: Boolean!
|
||||
hasUnpublishedChanges: Boolean!
|
||||
urlPath: String!
|
||||
owner: User
|
||||
seoTitle: String!
|
||||
showInMenus: Boolean!
|
||||
searchDescription: String
|
||||
goLiveAt: DateTime
|
||||
expireAt: DateTime
|
||||
expired: Boolean!
|
||||
locked: Boolean
|
||||
lockedAt: DateTime
|
||||
lockedBy: User
|
||||
firstPublishedAt: DateTime
|
||||
lastPublishedAt: DateTime
|
||||
latestRevisionCreatedAt: DateTime
|
||||
aliasOf: Page
|
||||
pageType: String
|
||||
url: String
|
||||
parent: PageInterface
|
||||
children(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
siblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
nextSiblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
previousSiblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
descendants(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
ancestors(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
}
|
||||
|
||||
type CourseSession {
|
||||
id: ID
|
||||
}
|
||||
|
||||
type CourseSessionUser {
|
||||
id: ID
|
||||
}
|
||||
|
||||
type DateBlock implements StreamFieldInterface {
|
||||
id: String
|
||||
blockType: String!
|
||||
field: String!
|
||||
rawValue: String!
|
||||
value(format: String): String!
|
||||
}
|
||||
|
||||
scalar DateTime
|
||||
|
||||
type DateTimeBlock implements StreamFieldInterface {
|
||||
id: String
|
||||
blockType: String!
|
||||
field: String!
|
||||
rawValue: String!
|
||||
value(format: String): String!
|
||||
}
|
||||
|
||||
type DecimalBlock implements StreamFieldInterface {
|
||||
id: String
|
||||
blockType: String!
|
||||
field: String!
|
||||
rawValue: String!
|
||||
value: Float!
|
||||
}
|
||||
|
||||
type DocumentChooserBlock implements StreamFieldInterface {
|
||||
id: String
|
||||
blockType: String!
|
||||
field: String!
|
||||
rawValue: String!
|
||||
document: LibraryDocument!
|
||||
}
|
||||
|
||||
type EmailBlock implements StreamFieldInterface {
|
||||
id: String
|
||||
blockType: String!
|
||||
field: String!
|
||||
rawValue: String!
|
||||
value: String!
|
||||
}
|
||||
|
||||
type EmbedBlock implements StreamFieldInterface {
|
||||
id: String
|
||||
blockType: String!
|
||||
field: String!
|
||||
rawValue: String!
|
||||
value: String!
|
||||
url: String!
|
||||
embed: String
|
||||
rawEmbed: JSONString
|
||||
}
|
||||
|
||||
type FloatBlock implements StreamFieldInterface {
|
||||
id: String
|
||||
blockType: String!
|
||||
field: String!
|
||||
rawValue: String!
|
||||
value: Float!
|
||||
}
|
||||
|
||||
type ImageChooserBlock implements StreamFieldInterface {
|
||||
id: String
|
||||
blockType: String!
|
||||
field: String!
|
||||
rawValue: String!
|
||||
image: ImageObjectType!
|
||||
}
|
||||
|
||||
type ImageObjectType {
|
||||
id: ID!
|
||||
collection: CollectionObjectType!
|
||||
title: String!
|
||||
file: String!
|
||||
width: Int!
|
||||
height: Int!
|
||||
createdAt: DateTime!
|
||||
uploadedByUser: User
|
||||
focalPointX: Int
|
||||
focalPointY: Int
|
||||
focalPointWidth: Int
|
||||
focalPointHeight: Int
|
||||
fileSize: Int
|
||||
fileHash: String!
|
||||
renditions: [ImageRenditionObjectType!]!
|
||||
src: String! @deprecated(reason: "Use the `url` attribute")
|
||||
url: String!
|
||||
aspectRatio: Float!
|
||||
sizes: String!
|
||||
tags: [TagObjectType!]!
|
||||
rendition(max: String, min: String, width: Int, height: Int, fill: String, format: String, bgcolor: String, jpegquality: Int, webpquality: Int): ImageRenditionObjectType
|
||||
srcSet(sizes: [Int], format: String): String
|
||||
}
|
||||
|
||||
type ImageRenditionObjectType {
|
||||
id: ID!
|
||||
filterSpec: String!
|
||||
file: String!
|
||||
width: Int!
|
||||
height: Int!
|
||||
focalPointKey: String!
|
||||
image: ImageObjectType!
|
||||
title: String!
|
||||
createdAt: DateTime!
|
||||
focalPointX: Int
|
||||
focalPointY: Int
|
||||
focalPointWidth: Int
|
||||
focalPointHeight: Int
|
||||
fileSize: Int
|
||||
fileHash: String!
|
||||
src: String! @deprecated(reason: "Use the `url` attribute")
|
||||
url: String!
|
||||
aspectRatio: Float!
|
||||
sizes: String!
|
||||
collection: CollectionObjectType!
|
||||
tags: [TagObjectType!]!
|
||||
}
|
||||
|
||||
type IntegerBlock implements StreamFieldInterface {
|
||||
id: String
|
||||
blockType: String!
|
||||
field: String!
|
||||
rawValue: String!
|
||||
value: Int!
|
||||
}
|
||||
|
||||
scalar JSONString
|
||||
|
||||
type LearningContent implements PageInterface {
|
||||
id: ID
|
||||
path: String!
|
||||
depth: Int
|
||||
numchild: Int!
|
||||
translationKey: UUID!
|
||||
title: String!
|
||||
draftTitle: String!
|
||||
slug: String!
|
||||
contentType: String!
|
||||
live: Boolean!
|
||||
hasUnpublishedChanges: Boolean!
|
||||
urlPath: String!
|
||||
owner: User
|
||||
seoTitle: String!
|
||||
showInMenus: Boolean!
|
||||
searchDescription: String
|
||||
goLiveAt: DateTime
|
||||
expireAt: DateTime
|
||||
expired: Boolean!
|
||||
locked: Boolean
|
||||
lockedAt: DateTime
|
||||
lockedBy: User
|
||||
firstPublishedAt: DateTime
|
||||
lastPublishedAt: DateTime
|
||||
latestRevisionCreatedAt: DateTime
|
||||
aliasOf: Page
|
||||
pageType: String
|
||||
url: String
|
||||
parent: PageInterface
|
||||
children(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
siblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
nextSiblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
previousSiblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
descendants(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
ancestors(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
}
|
||||
|
||||
type LearningPath implements PageInterface {
|
||||
id: ID
|
||||
path: String!
|
||||
depth: Int
|
||||
numchild: Int!
|
||||
translationKey: UUID!
|
||||
title: String!
|
||||
draftTitle: String!
|
||||
slug: String!
|
||||
contentType: String!
|
||||
live: Boolean!
|
||||
hasUnpublishedChanges: Boolean!
|
||||
urlPath: String!
|
||||
owner: User
|
||||
seoTitle: String!
|
||||
showInMenus: Boolean!
|
||||
searchDescription: String
|
||||
goLiveAt: DateTime
|
||||
expireAt: DateTime
|
||||
expired: Boolean!
|
||||
locked: Boolean
|
||||
lockedAt: DateTime
|
||||
lockedBy: User
|
||||
firstPublishedAt: DateTime
|
||||
lastPublishedAt: DateTime
|
||||
latestRevisionCreatedAt: DateTime
|
||||
aliasOf: Page
|
||||
pageType: String
|
||||
url: String
|
||||
parent: PageInterface
|
||||
children(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
siblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
nextSiblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
previousSiblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
descendants(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
ancestors(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
}
|
||||
|
||||
type LearningSequence implements PageInterface {
|
||||
id: ID
|
||||
path: String!
|
||||
depth: Int
|
||||
numchild: Int!
|
||||
translationKey: UUID!
|
||||
title: String!
|
||||
draftTitle: String!
|
||||
slug: String!
|
||||
contentType: String!
|
||||
live: Boolean!
|
||||
hasUnpublishedChanges: Boolean!
|
||||
urlPath: String!
|
||||
owner: User
|
||||
seoTitle: String!
|
||||
showInMenus: Boolean!
|
||||
searchDescription: String
|
||||
goLiveAt: DateTime
|
||||
expireAt: DateTime
|
||||
expired: Boolean!
|
||||
locked: Boolean
|
||||
lockedAt: DateTime
|
||||
lockedBy: User
|
||||
firstPublishedAt: DateTime
|
||||
lastPublishedAt: DateTime
|
||||
latestRevisionCreatedAt: DateTime
|
||||
aliasOf: Page
|
||||
pageType: String
|
||||
url: String
|
||||
parent: PageInterface
|
||||
children(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
siblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
nextSiblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
previousSiblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
descendants(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
ancestors(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
}
|
||||
|
||||
type LearningUnit implements PageInterface {
|
||||
id: ID
|
||||
path: String!
|
||||
depth: Int
|
||||
numchild: Int!
|
||||
translationKey: UUID!
|
||||
title: String!
|
||||
draftTitle: String!
|
||||
slug: String!
|
||||
contentType: String!
|
||||
live: Boolean!
|
||||
hasUnpublishedChanges: Boolean!
|
||||
urlPath: String!
|
||||
owner: User
|
||||
seoTitle: String!
|
||||
showInMenus: Boolean!
|
||||
searchDescription: String
|
||||
goLiveAt: DateTime
|
||||
expireAt: DateTime
|
||||
expired: Boolean!
|
||||
locked: Boolean
|
||||
lockedAt: DateTime
|
||||
lockedBy: User
|
||||
firstPublishedAt: DateTime
|
||||
lastPublishedAt: DateTime
|
||||
latestRevisionCreatedAt: DateTime
|
||||
aliasOf: Page
|
||||
pageType: String
|
||||
url: String
|
||||
parent: PageInterface
|
||||
children(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
siblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
nextSiblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
previousSiblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
descendants(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
ancestors(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
}
|
||||
|
||||
type LibraryDocument {
|
||||
id: ID
|
||||
collection: CollectionObjectType!
|
||||
title: String!
|
||||
file: String!
|
||||
createdAt: DateTime!
|
||||
fileSize: Int
|
||||
fileHash: String!
|
||||
url: String!
|
||||
tags: [TagObjectType!]!
|
||||
}
|
||||
|
||||
type ListBlock implements StreamFieldInterface {
|
||||
id: String
|
||||
blockType: String!
|
||||
field: String!
|
||||
rawValue: String!
|
||||
items: [StreamFieldInterface!]!
|
||||
}
|
||||
|
||||
type MediaCategoryPage implements PageInterface {
|
||||
id: ID
|
||||
path: String!
|
||||
depth: Int
|
||||
numchild: Int!
|
||||
translationKey: UUID!
|
||||
title: String!
|
||||
draftTitle: String!
|
||||
slug: String!
|
||||
contentType: String!
|
||||
live: Boolean!
|
||||
hasUnpublishedChanges: Boolean!
|
||||
urlPath: String!
|
||||
owner: User
|
||||
seoTitle: String!
|
||||
showInMenus: Boolean!
|
||||
searchDescription: String
|
||||
goLiveAt: DateTime
|
||||
expireAt: DateTime
|
||||
expired: Boolean!
|
||||
locked: Boolean
|
||||
lockedAt: DateTime
|
||||
lockedBy: User
|
||||
firstPublishedAt: DateTime
|
||||
lastPublishedAt: DateTime
|
||||
latestRevisionCreatedAt: DateTime
|
||||
aliasOf: Page
|
||||
pageType: String
|
||||
url: String
|
||||
parent: PageInterface
|
||||
children(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
siblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
nextSiblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
previousSiblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
descendants(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
ancestors(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
}
|
||||
|
||||
type MediaLibraryPage implements PageInterface {
|
||||
id: ID
|
||||
path: String!
|
||||
depth: Int
|
||||
numchild: Int!
|
||||
translationKey: UUID!
|
||||
title: String!
|
||||
draftTitle: String!
|
||||
slug: String!
|
||||
contentType: String!
|
||||
live: Boolean!
|
||||
hasUnpublishedChanges: Boolean!
|
||||
urlPath: String!
|
||||
owner: User
|
||||
seoTitle: String!
|
||||
showInMenus: Boolean!
|
||||
searchDescription: String
|
||||
goLiveAt: DateTime
|
||||
expireAt: DateTime
|
||||
expired: Boolean!
|
||||
locked: Boolean
|
||||
lockedAt: DateTime
|
||||
lockedBy: User
|
||||
firstPublishedAt: DateTime
|
||||
lastPublishedAt: DateTime
|
||||
latestRevisionCreatedAt: DateTime
|
||||
aliasOf: Page
|
||||
pageType: String
|
||||
url: String
|
||||
parent: PageInterface
|
||||
children(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
siblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
nextSiblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
previousSiblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
descendants(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
ancestors(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
}
|
||||
|
||||
type Page implements PageInterface {
|
||||
id: ID
|
||||
path: String!
|
||||
depth: Int
|
||||
numchild: Int!
|
||||
translationKey: UUID!
|
||||
title: String!
|
||||
draftTitle: String!
|
||||
slug: String!
|
||||
contentType: String!
|
||||
live: Boolean!
|
||||
hasUnpublishedChanges: Boolean!
|
||||
urlPath: String!
|
||||
owner: User
|
||||
seoTitle: String!
|
||||
showInMenus: Boolean!
|
||||
searchDescription: String
|
||||
goLiveAt: DateTime
|
||||
expireAt: DateTime
|
||||
expired: Boolean!
|
||||
locked: Boolean
|
||||
lockedAt: DateTime
|
||||
lockedBy: User
|
||||
firstPublishedAt: DateTime
|
||||
lastPublishedAt: DateTime
|
||||
latestRevisionCreatedAt: DateTime
|
||||
aliasOf: Page
|
||||
sitesRootedHere: [SiteObjectType!]!
|
||||
aliases: [Page!]!
|
||||
coursepage: CoursePage
|
||||
learningpath: LearningPath
|
||||
topic: Topic
|
||||
circle: Circle
|
||||
learningsequence: LearningSequence
|
||||
learningunit: LearningUnit
|
||||
learningcontent: LearningContent
|
||||
competenceprofilepage: CompetenceProfilePage
|
||||
competencepage: CompetencePage
|
||||
performancecriteria: PerformanceCriteria
|
||||
medialibrarypage: MediaLibraryPage
|
||||
mediacategorypage: MediaCategoryPage
|
||||
pageType: String
|
||||
url: String
|
||||
parent: PageInterface
|
||||
children(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
siblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
nextSiblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
previousSiblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
descendants(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
ancestors(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
}
|
||||
|
||||
type PageChooserBlock implements StreamFieldInterface {
|
||||
id: String
|
||||
blockType: String!
|
||||
field: String!
|
||||
rawValue: String!
|
||||
page: PageInterface!
|
||||
}
|
||||
|
||||
interface PageInterface {
|
||||
id: ID
|
||||
title: String!
|
||||
slug: String!
|
||||
contentType: String!
|
||||
pageType: String
|
||||
live: Boolean!
|
||||
url: String
|
||||
urlPath: String!
|
||||
depth: Int
|
||||
seoTitle: String!
|
||||
searchDescription: String
|
||||
showInMenus: Boolean!
|
||||
locked: Boolean
|
||||
firstPublishedAt: DateTime
|
||||
lastPublishedAt: DateTime
|
||||
parent: PageInterface
|
||||
children(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
siblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
nextSiblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
previousSiblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
descendants(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
ancestors(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
}
|
||||
|
||||
type PerformanceCriteria implements PageInterface {
|
||||
id: ID
|
||||
path: String!
|
||||
depth: Int
|
||||
numchild: Int!
|
||||
translationKey: UUID!
|
||||
title: String!
|
||||
draftTitle: String!
|
||||
slug: String!
|
||||
contentType: String!
|
||||
live: Boolean!
|
||||
hasUnpublishedChanges: Boolean!
|
||||
urlPath: String!
|
||||
owner: User
|
||||
seoTitle: String!
|
||||
showInMenus: Boolean!
|
||||
searchDescription: String
|
||||
goLiveAt: DateTime
|
||||
expireAt: DateTime
|
||||
expired: Boolean!
|
||||
locked: Boolean
|
||||
lockedAt: DateTime
|
||||
lockedBy: User
|
||||
firstPublishedAt: DateTime
|
||||
lastPublishedAt: DateTime
|
||||
latestRevisionCreatedAt: DateTime
|
||||
aliasOf: Page
|
||||
pageType: String
|
||||
url: String
|
||||
parent: PageInterface
|
||||
children(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
siblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
nextSiblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
previousSiblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
descendants(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
ancestors(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
}
|
||||
|
||||
scalar PositiveInt
|
||||
|
||||
type Query {
|
||||
redirects: [RedirectType!]!
|
||||
collections(limit: PositiveInt, offset: PositiveInt, order: String, id: ID): [CollectionObjectType]!
|
||||
tag(id: ID): TagObjectType
|
||||
tags(limit: PositiveInt, offset: PositiveInt, order: String, id: ID): [TagObjectType!]!
|
||||
search(query: String): [Search!]!
|
||||
document(id: ID): LibraryDocument
|
||||
documents(collection: ID, limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [LibraryDocument!]!
|
||||
documentType: String!
|
||||
image(id: ID): ImageObjectType
|
||||
images(collection: ID, limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [ImageObjectType!]!
|
||||
imageType: String!
|
||||
site(hostname: String, id: ID): SiteObjectType
|
||||
sites(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [SiteObjectType!]!
|
||||
pages(contentType: String, inSite: Boolean = false, site: String, ancestor: ID, parent: ID, limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
page(id: Int, slug: String, urlPath: String, token: String, contentType: String, inSite: Boolean = false, site: String): PageInterface
|
||||
}
|
||||
|
||||
type RawHTMLBlock implements StreamFieldInterface {
|
||||
id: String
|
||||
blockType: String!
|
||||
field: String!
|
||||
rawValue: String!
|
||||
value: String!
|
||||
}
|
||||
|
||||
type RedirectType {
|
||||
oldPath: String!
|
||||
oldUrl: String!
|
||||
newUrl: String!
|
||||
page: PageInterface
|
||||
isPermanent: Boolean!
|
||||
}
|
||||
|
||||
type RegexBlock implements StreamFieldInterface {
|
||||
id: String
|
||||
blockType: String!
|
||||
field: String!
|
||||
rawValue: String!
|
||||
value: String!
|
||||
}
|
||||
|
||||
type RichTextBlock implements StreamFieldInterface {
|
||||
id: String
|
||||
blockType: String!
|
||||
field: String!
|
||||
rawValue: String!
|
||||
value: String!
|
||||
}
|
||||
|
||||
union Search = CoursePage | LearningPath | Topic | Circle | LearningSequence | LearningUnit | LearningContent | CompetenceProfilePage | CompetencePage | PerformanceCriteria | MediaLibraryPage | MediaCategoryPage | Page | LibraryDocument | User | SecurityRequestResponseLog | Course | CourseCategory | CourseCompletion | CourseSession | CourseSessionUser
|
||||
|
||||
type SecurityRequestResponseLog {
|
||||
id: ID
|
||||
}
|
||||
|
||||
type SiteObjectType {
|
||||
id: ID!
|
||||
hostname: String!
|
||||
port: Int!
|
||||
siteName: String!
|
||||
rootPage: Page!
|
||||
isDefaultSite: Boolean!
|
||||
pages(contentType: String, limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
page(id: Int, slug: String, urlPath: String, token: String, contentType: String): PageInterface
|
||||
}
|
||||
|
||||
type StaticBlock implements StreamFieldInterface {
|
||||
id: String
|
||||
blockType: String!
|
||||
field: String!
|
||||
rawValue: String!
|
||||
value: String!
|
||||
}
|
||||
|
||||
type StreamBlock implements StreamFieldInterface {
|
||||
id: String
|
||||
blockType: String!
|
||||
field: String!
|
||||
rawValue: String!
|
||||
blocks: [StreamFieldInterface!]!
|
||||
}
|
||||
|
||||
type StreamFieldBlock implements StreamFieldInterface {
|
||||
id: String
|
||||
blockType: String!
|
||||
field: String!
|
||||
rawValue: String!
|
||||
value: String!
|
||||
}
|
||||
|
||||
interface StreamFieldInterface {
|
||||
id: String
|
||||
blockType: String!
|
||||
field: String!
|
||||
rawValue: String!
|
||||
}
|
||||
|
||||
type StructBlock implements StreamFieldInterface {
|
||||
id: String
|
||||
blockType: String!
|
||||
field: String!
|
||||
rawValue: String!
|
||||
blocks: [StreamFieldInterface!]!
|
||||
}
|
||||
|
||||
type TagObjectType {
|
||||
id: ID!
|
||||
name: String!
|
||||
}
|
||||
|
||||
type TextBlock implements StreamFieldInterface {
|
||||
id: String
|
||||
blockType: String!
|
||||
field: String!
|
||||
rawValue: String!
|
||||
value: String!
|
||||
}
|
||||
|
||||
type TimeBlock implements StreamFieldInterface {
|
||||
id: String
|
||||
blockType: String!
|
||||
field: String!
|
||||
rawValue: String!
|
||||
value(format: String): String!
|
||||
}
|
||||
|
||||
type Topic implements PageInterface {
|
||||
id: ID
|
||||
path: String!
|
||||
depth: Int
|
||||
numchild: Int!
|
||||
translationKey: UUID!
|
||||
title: String!
|
||||
draftTitle: String!
|
||||
slug: String!
|
||||
contentType: String!
|
||||
live: Boolean!
|
||||
hasUnpublishedChanges: Boolean!
|
||||
urlPath: String!
|
||||
owner: User
|
||||
seoTitle: String!
|
||||
showInMenus: Boolean!
|
||||
searchDescription: String
|
||||
goLiveAt: DateTime
|
||||
expireAt: DateTime
|
||||
expired: Boolean!
|
||||
locked: Boolean
|
||||
lockedAt: DateTime
|
||||
lockedBy: User
|
||||
firstPublishedAt: DateTime
|
||||
lastPublishedAt: DateTime
|
||||
latestRevisionCreatedAt: DateTime
|
||||
aliasOf: Page
|
||||
pageType: String
|
||||
url: String
|
||||
parent: PageInterface
|
||||
children(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
siblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
nextSiblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
previousSiblings(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
descendants(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
ancestors(limit: PositiveInt, offset: PositiveInt, order: String, searchQuery: String, id: ID): [PageInterface!]!
|
||||
}
|
||||
|
||||
type URLBlock implements StreamFieldInterface {
|
||||
id: String
|
||||
blockType: String!
|
||||
field: String!
|
||||
rawValue: String!
|
||||
value: String!
|
||||
}
|
||||
|
||||
scalar UUID
|
||||
|
||||
type User {
|
||||
id: ID
|
||||
}
|
||||
Loading…
Reference in New Issue