vbv/server/schema.graphql

211 lines
4.5 KiB
GraphQL

type Query {
course(id: Int): CourseType
assignment(id: ID, slug: String): AssignmentType
assignment_completion(assignment_id: ID!, course_session_id: ID!, assignment_user_id: ID): AssignmentCompletionType
}
type CourseType {
id: ID!
title: String!
category_name: String!
slug: String!
learning_path: LearningPathType
}
type LearningPathType implements CoursePageInterface {
id: ID
path: String!
depth: Int!
numchild: Int!
translation_key: String
live: Boolean
has_unpublished_changes: Boolean!
first_published_at: DateTime
last_published_at: DateTime
go_live_at: DateTime
expire_at: DateTime
expired: Boolean!
locked: Boolean!
locked_at: DateTime
locked_by: UserType
title: String
draft_title: String!
slug: String
content_type: String
url_path: String!
owner: UserType
"""
Der Titel der Seite, dargestellt in Suchmaschinen-Ergebnissen als die verlinkte Überschrift.
"""
seo_title: String!
"""
Ob ein Link zu dieser Seite in automatisch generierten Menüs auftaucht.
"""
show_in_menus: Boolean!
"""
Die informative Beschreibung, dargestellt in Suchmaschinen-Ergebnissen unter der Überschrift.
"""
search_description: String!
latest_revision_created_at: DateTime
frontend_url: String
}
interface CoursePageInterface {
id: ID
title: String
slug: String
content_type: String
live: Boolean
translation_key: String
frontend_url: String
}
"""
The `DateTime` scalar type represents a DateTime
value as specified by
[iso8601](https://en.wikipedia.org/wiki/ISO_8601).
"""
scalar DateTime
type UserType {
id: ID!
"""
Erforderlich. 150 Zeichen oder weniger. Nur Buchstaben, Ziffern und @/./+/-/_.
"""
username: String!
first_name: String!
last_name: String!
avatar_url: String!
email: String!
language: CoreUserLanguageChoices!
}
"""An enumeration."""
enum CoreUserLanguageChoices {
"""Deutsch"""
DE
"""Français"""
FR
"""Italiano"""
IT
}
type AssignmentType implements CoursePageInterface {
"""Erläuterung der Ausgangslage"""
starting_position: String!
"""Zeitaufwand als Text"""
effort_required: String!
"""Beschreibung der Bewertung"""
evaluation_description: String!
"""URL zum Beurteilungsinstrument"""
evaluation_document_url: String!
id: ID
title: String
slug: String
content_type: String
live: Boolean
translation_key: String
frontend_url: String
tasks: JSONStreamField
evaluation_tasks: JSONStreamField
performance_objectives: JSONStreamField
}
scalar JSONStreamField
type AssignmentCompletionType {
id: ID!
created_at: DateTime!
updated_at: DateTime!
submitted_at: DateTime
evaluation_submitted_at: DateTime
evaluation_user: UserType
evaluation_grade: Float
evaluation_points: Float
assignment_user: UserType!
assignment: AssignmentType!
completion_status: AssignmentAssignmentCompletionCompletionStatusChoices!
completion_data: GenericScalar
additional_json_data: JSONString!
}
"""An enumeration."""
enum AssignmentAssignmentCompletionCompletionStatusChoices {
"""IN_PROGRESS"""
IN_PROGRESS
"""SUBMITTED"""
SUBMITTED
"""EVALUATION_IN_PROGRESS"""
EVALUATION_IN_PROGRESS
"""EVALUATION_SUBMITTED"""
EVALUATION_SUBMITTED
}
"""
The `GenericScalar` scalar type represents a generic
GraphQL scalar value that could be:
String, Boolean, Int, Float, List or Object.
"""
scalar GenericScalar
"""
Allows use of a JSON String for input / output from the GraphQL schema.
Use of this type is *not recommended* as you lose the benefits of having a defined, static
schema (one of the key benefits of GraphQL).
"""
scalar JSONString
type Mutation {
send_feedback(input: SendFeedbackInput!): SendFeedbackPayload
upsert_assignment_completion(assignment_id: ID!, assignment_user_id: ID, completion_data_string: String, completion_status: String, course_session_id: ID!, evaluation_grade: Float, evaluation_points: Float): AssignmentCompletionMutation
}
type SendFeedbackPayload {
feedback_response: FeedbackResponse
"""May contain more than one error for same field."""
errors: [ErrorType]
clientMutationId: String
}
type FeedbackResponse implements Node {
"""The ID of the object"""
id: ID!
data: GenericScalar
created_at: DateTime!
}
"""An object with an ID"""
interface Node {
"""The ID of the object"""
id: ID!
}
type ErrorType {
field: String!
messages: [String!]!
}
input SendFeedbackInput {
page: String!
course_session: Int!
data: GenericScalar
clientMutationId: String
}
type AssignmentCompletionMutation {
assignment_completion: AssignmentCompletionType
}