diff --git a/Dockerfile b/Dockerfile
index c9f507c..261ad83 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -2,7 +2,7 @@ FROM adoptopenjdk/openjdk11:alpine-jre
WORKDIR /eedu
-COPY /target/gateway-0.1-SNAPSHOT.jar gateway.jar
+COPY gateway-core/target/gateway-core-0.1-SNAPSHOT.jar gateway.jar
EXPOSE 80
diff --git a/backend-api/pom.xml b/backend-api/pom.xml
new file mode 100644
index 0000000..35d13e2
--- /dev/null
+++ b/backend-api/pom.xml
@@ -0,0 +1,88 @@
+
+
+
+ gateway
+ de.the-morpheus.e-du
+ 0.1-SNAPSHOT
+
+ 4.0.0
+
+ backend-api
+
+
+
+ io.swagger.core.v3
+ swagger-annotations
+ 2.1.2
+ compile
+
+
+ com.squareup.okhttp
+ okhttp
+ 2.7.5
+ compile
+
+
+ com.squareup.okhttp
+ logging-interceptor
+ 2.7.5
+ compile
+
+
+ org.threeten
+ threetenbp
+ 1.4.0
+
+
+ io.gsonfire
+ gson-fire
+ 1.8.4
+
+
+ org.realityforge.javax.annotation
+ javax.annotation
+ 1.0.1
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.8.1
+
+
+ 1.8
+
+
+
+ io.swagger.codegen.v3
+ swagger-codegen-maven-plugin
+ 3.0.19
+
+
+
+ generate
+
+
+ ${project.basedir}/src/main/resources/task.yaml
+ java
+ de.themorpheus.edu.backend.api
+ de.themorpheus.edu.backend.model
+ de.themorpheus.edu.backend.invoker
+
+ ${project.basedir}/src/main/java
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/backend-api/src/main/resources/task.yaml b/backend-api/src/main/resources/task.yaml
new file mode 100644
index 0000000..af36a70
--- /dev/null
+++ b/backend-api/src/main/resources/task.yaml
@@ -0,0 +1,4415 @@
+openapi: 3.0.1
+info:
+ title: Task Microservice WIP
+ version: v1
+servers:
+ - url: https://task.e-edu.the-morpheus.de/
+ - url: http://localhost:80
+tags:
+ - name: task
+ description: Task
+ - name: subject
+ description: Subject
+ - name: module
+ description: Module
+ - name: lecture
+ description: Lecture
+ - name: task_group
+ description: Task Group
+ - name: solution
+ description: Solution
+ - name: difficulty
+ description: Difficulty
+ - name: task_type
+ description: Task Types
+paths:
+ /task:
+ post:
+ tags:
+ - task
+ summary: Creates a new task
+ operationId: createTask
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ task:
+ type: string
+ description:
+ type: string
+ description: Not Requiered
+ necessary_points:
+ type: integer
+ task_type_name_key:
+ type: string
+ lecture_name_key:
+ type: integer
+ difficulty_name_key:
+ type: string
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Task'
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ get:
+ tags:
+ - task
+ summary: Gets all tasks based on provided query parameters
+ operationId: searchTask
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: subject
+ in: query
+ required: true
+ description: Subject
+ schema:
+ type: string
+ format: string
+ minimum: 0
+ - name: module
+ in: query
+ required: true
+ description: Module
+ schema:
+ type: string
+ format: string
+ minimum: 0
+ - name: lecture
+ in: query
+ required: false
+ description: Lecture
+ schema:
+ type: string
+ format: string
+ minimum: 0
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ tasks:
+ type: array
+ items:
+ $ref: '#/components/schemas/Task'
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /task/{task_id}:
+ get:
+ tags:
+ - task
+ summary: Gets a task
+ operationId: getTask
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: task_id
+ in: path
+ required: true
+ description: The unique task id
+ schema:
+ type: integer
+ format: int64
+ minimum: 0
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Task'
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ delete:
+ tags:
+ - task
+ summary: Deletes a Task
+ operationId: deleteTask
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: task_id
+ in: path
+ required: true
+ description: The unique task id
+ schema:
+ type: integer
+ format: int64
+ minimum: 0
+ responses:
+ '200':
+ description: Ok
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ put:
+ tags:
+ - task
+ summary: Edits a new Task
+ operationId: editTask
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: task_id
+ in: path
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ task:
+ type: string
+ necessary_points:
+ type: integer
+ task_type_name_key:
+ type: string
+ subject_name_key:
+ type: string
+ module_name_key:
+ type: string
+ lecture_name_key:
+ type: string
+ difficulty_name_key:
+ type: string
+ responses:
+ '200':
+ description: Ok
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /task/vote/{task_id}:
+ put:
+ tags:
+ - task
+ summary: Votes for a task
+ description: Vote for a specific task. The vote argument can **only** be 1 or
+ -1
+ operationId: voteTask
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: task_id
+ in: path
+ required: true
+ schema:
+ type: integer
+ format: int64
+ minimum: 0
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ vote:
+ type: integer
+ description: Can be 1 or -1
+ example: 1
+ responses:
+ '200':
+ description: Ok
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /task/verify:
+ patch:
+ tags:
+ - task
+ summary: Verifys a task
+ operationId: verifyTask
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Task'
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /task/next:
+ post:
+ tags:
+ - task
+ summary: Gets next random task
+ description: Gets next random task in current lecture based on last task and
+ takes an integer array of the already absolved tasks ids.
+ operationId: getNext
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: array
+ description: List of tasks that have already been absolved
+ items:
+ type: integer
+ example:
+ - 0
+ - 3
+ - 6
+ - 7
+ - 2
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Task'
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /task/own:
+ get:
+ tags:
+ - task
+ summary: Gets all tasks created by the user
+ operationId: getOwnTasks
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ tasks:
+ type: array
+ items:
+ $ref: '#/components/schemas/Task'
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /task/user/{user_id}:
+ get:
+ tags:
+ - task
+ summary: Get all tasks created by specified user
+ operationId: getUserTasks
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: user_id
+ in: path
+ required: true
+ schema:
+ type: string
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ tasks:
+ type: array
+ items:
+ $ref: '#/components/schemas/Task'
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /task_group:
+ post:
+ tags:
+ - task_group
+ summary: Create a Task Group
+ operationId: createTaskGroup
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ lecture_id:
+ type: integer
+ example: 1
+ name_key:
+ type: string
+ example: Tolles-Aufgaben-Pack
+ task_ids:
+ type: array
+ items:
+ type: integer
+ example: 1
+ difficulty_id:
+ type: integer
+ example: 1
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ task_group_id:
+ type: integer
+ example: 1
+ lecture_id:
+ type: integer
+ example: 1
+ name_key:
+ type: string
+ example: Tolles-Aufgaben-Pack
+ task_ids:
+ type: array
+ items:
+ type: integer
+ example: 1
+ difficulty_id:
+ type: integer
+ example: 1
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ put:
+ tags:
+ - task_group
+ summary: Edit a Task Group
+ operationId: editTaskGroup
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ task_group_id:
+ type: integer
+ example: 1
+ description: The task group id to modify
+ lecture_id:
+ type: integer
+ example: 1
+ name_key:
+ type: string
+ example: Tolles-Aufgaben-Pack
+ task_ids:
+ type: array
+ items:
+ type: integer
+ example: 1
+ difficulty_id:
+ type: integer
+ example: 1
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ lecture_id:
+ type: integer
+ example: 1
+ name_key:
+ type: string
+ example: Tolles-Aufgaben-Pack
+ task_ids:
+ type: array
+ items:
+ type: integer
+ example: 1
+ difficulty_id:
+ type: integer
+ example: 1
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /task_group/own:
+ get:
+ tags:
+ - task_group
+ summary: Get all task groups created by the user
+ operationId: getOwnTaskGroups
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ task_groups:
+ type: array
+ items:
+ $ref: '#/components/schemas/TaskGroup'
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /task_group/user/{user_id}:
+ get:
+ tags:
+ - task_group
+ summary: Get all task groups from specified user
+ operationId: getTaskGroupsFromUser
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: user_id
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 0b870676-1a01-47aa-8402-859fb9806238
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ task_groups:
+ type: array
+ items:
+ $ref: '#/components/schemas/TaskGroup'
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /task_group/{task_group_id}:
+ get:
+ tags:
+ - task_group
+ summary: Get a task group
+ operationId: getTaskGroup
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: task_group_id
+ in: path
+ required: true
+ schema:
+ type: integer
+ example: 1
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/TaskGroup'
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ delete:
+ tags:
+ - task_group
+ summary: Delete a Task Group
+ operationId: deleteTaskGroup
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: task_group_id
+ in: path
+ required: true
+ schema:
+ type: string
+ example: 1
+ responses:
+ '200':
+ description: Ok
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /task_group/task:
+ post:
+ tags:
+ - task_group
+ summary: Add single task to Task Group
+ operationId: addTaskToTaskGroups
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ task_group_id:
+ type: integer
+ example: 1
+ description: The task group id to add the task to
+ task_id:
+ type: integer
+ description: The id of the task to add to the Task Group
+ example: 1
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ task_group_id:
+ type: integer
+ example: 1
+ description: The task group id to add the task to
+ task_id:
+ type: integer
+ description: The id of the task to add to the Task Group
+ example: 1
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /task_group/{task_group_id}/task/{task_id}:
+ delete:
+ tags:
+ - task_group
+ summary: Remove single task from Task Group
+ operationId: removeTaskFromTaskGroups
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: task_group_id
+ in: path
+ required: true
+ description: The id of the task group
+ schema:
+ type: integer
+ example: 1
+ - name: task_id
+ in: path
+ required: true
+ description: The id of the task to remove from the task group
+ schema:
+ type: integer
+ example: 1
+ responses:
+ '200':
+ description: Ok
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /lecture/{lecture_name_key}/task_group:
+ get:
+ tags:
+ - task_group
+ summary: Get Task Groups from lecture
+ operationId: getTaskGroupsFromLecture
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: lecture_name_key
+ in: path
+ required: true
+ schema:
+ type: string
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ task_Groups:
+ type: array
+ items:
+ $ref: '#/components/schemas/TaskGroup'
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /solution/multiple_choice/:
+ post:
+ tags:
+ - solution
+ summary: Creates a new multiple choice Solution
+ operationId: createmultipleChoiceSolution
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ applicaton/json:
+ schema:
+ type: object
+ properties:
+ task_id:
+ type: integer
+ example: 1
+ solution:
+ type: string
+ example: "L\xF6sung 1"
+ is_correct:
+ type: boolean
+ example: 1
+ responses:
+ 200:
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ multiple_choice_solution_id:
+ type: integer
+ minimum: 0
+ example: 1
+ correct:
+ type: boolean
+ example: true
+ solution:
+ type: string
+ example: "L\xF6sung 1 lol"
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /solution/multiple_choice/{task_id}:
+ get:
+ tags:
+ - solution
+ summary: Get all multiple choice solutions from task id
+ operationId: getMultipleChoiceSolutions
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: task_id
+ in: path
+ required: true
+ schema:
+ type: integer
+ example: 1
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ solutions:
+ type: array
+ items:
+ type: object
+ properties:
+ multiple_choice_solution_id:
+ type: integer
+ example: 1
+ solution:
+ type: string
+ example: "L\xF6sung 1 lol"
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /solution/multiple_choice/{task_id}/all:
+ get:
+ tags:
+ - solution
+ summary: Same as solution/multiple_choice/{task_id}, but returns more data.
+ This route can only be used by teachers.
+ operationId: getAllMultipleChoiceSolutionsExpanded
+ security:
+ - JWT:
+ - read
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: task_id
+ in: path
+ required: true
+ schema:
+ type: integer
+ example: 1
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ solutions:
+ type: array
+ items:
+ type: object
+ properties:
+ multiple_choice_solution_id:
+ type: integer
+ example: 1
+ solution:
+ type: string
+ example: "L\xF6sung 1 lol"
+ correct:
+ type: boolean
+ example: true
+ /solution/multiple_choice/check:
+ post:
+ tags:
+ - solution
+ summary: Check multiple choice solutions
+ operationId: checkMultipleChoiceSolutions
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ solution:
+ type: array
+ items:
+ type: object
+ properties:
+ multiple_choice_solution_id:
+ type: integer
+ example: 1
+ correct:
+ type: boolean
+ example: true
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ solutions:
+ type: array
+ items:
+ type: boolean
+ description: Array if solution is true or not
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /solution/multiple_choice/{multiple_choice_solution_id}:
+ delete:
+ tags:
+ - solution
+ summary: Deletes a multiple choice Solution
+ operationId: deleteMultipleChoiceSolutions
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: multiple_choice_solution_id
+ description: Id of the muliple choice solution
+ in: path
+ required: true
+ schema:
+ type: integer
+ responses:
+ '200':
+ description: Ok
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /solution/freestyle:
+ post:
+ tags:
+ - solution
+ summary: Create a freestyle sample solution
+ operationId: createFreestyleSolution
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SampleSolution'
+ responses:
+ '200':
+ description: Ok
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /solution/freestyle/check:
+ post:
+ tags:
+ - solution
+ summary: Check freestyle solution
+ operationId: checkFreestyleSolution
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ task_id:
+ type: integer
+ solution:
+ type: string
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SampleSolution'
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /solution/freestyle/{task_id}:
+ delete:
+ tags:
+ - solution
+ summary: Delte freestyle solution
+ operationId: deleteFreestyleSolution
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: task_id
+ in: path
+ required: true
+ schema:
+ type: string
+ responses:
+ '200':
+ description: Ok
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /solution/wordsalad/:
+ post:
+ tags:
+ - solution
+ summary: Creates a new wordsalad Solution
+ operationId: createWordsaladSolution
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ applicaton/json:
+ schema:
+ type: object
+ properties:
+ task_id:
+ type: integer
+ solution:
+ type: string
+ responses:
+ 200:
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ wordsalad_solution_id:
+ type: integer
+ solution:
+ type: string
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ put:
+ tags:
+ - solution
+ summary: Edits a wordsalad Solution
+ operationId: editWordsaladSolution
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ task_id:
+ type: integer
+ solution:
+ type: string
+ responses:
+ 200:
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ wordsalad_solution_id:
+ type: integer
+ solution:
+ type: string
+ 400:
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ 500:
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /solution/wordsalad/{task_id}:
+ get:
+ tags:
+ - solution
+ summary: Get all wordsalad solution from task id
+ operationId: getWordsaladSolution
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: task_id
+ in: path
+ required: true
+ description: The unique task id
+ schema:
+ type: integer
+ format: int64
+ minimum: 0
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ solution:
+ type: string
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ delete:
+ tags:
+ - solution
+ summary: Deletes a Wordsalad solution
+ operationId: deleteWordsaladSolutions
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: task_id
+ in: path
+ required: true
+ schema:
+ type: integer
+ responses:
+ '200':
+ description: Ok
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /solution/wordsalad/check:
+ post:
+ tags:
+ - solution
+ summary: Check wordsalad solution
+ operationId: checkWordsaladSolution
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ task_id:
+ type: integer
+ solution:
+ type: string
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ correct:
+ type: boolean
+ solution:
+ type: string
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /solution/image/:
+ post:
+ tags:
+ - solution
+ summary: Create a image solution
+ operationId: createImageSolution
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ task_id:
+ type: integer
+ solution:
+ type: string
+ example: LINK_TO_IMAGE
+ format: URL
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ task_id:
+ type: integer
+ solution:
+ type: string
+ example: LINK_TO_IMAGE
+ format: URL
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /solution/image/{task_id}:
+ get:
+ tags:
+ - solution
+ summary: Get all image solution from task id
+ operationId: getImageSolution
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: task_id
+ in: path
+ required: true
+ description: The unique task id
+ schema:
+ type: integer
+ format: int64
+ minimum: 0
+ responses:
+ '200':
+ description: Ok
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ delete:
+ tags:
+ - solution
+ summary: Deletes a Image Solution
+ operationId: deleteImmageSolution
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: task_id
+ in: path
+ required: true
+ description: The unique task id
+ schema:
+ type: integer
+ format: int64
+ minimum: 0
+ responses:
+ '200':
+ description: Ok
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /solution/image/check:
+ post:
+ tags:
+ - solution
+ summary: Check image solution
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ task_id:
+ type: integer
+ url:
+ type: string
+ example: LINK_TO_IMAGE
+ responses:
+ '200':
+ description: Ok
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /solution/topic_connection:
+ post:
+ tags:
+ - solution
+ summary: Creates a new topic connection solution
+ operationId: createTopicConnectionSolution
+ security:
+ - JWT:
+ - read
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ task_id:
+ type: integer
+ point_a:
+ type: string
+ description: Name of connection point a. Can not be empty
+ point_b:
+ type: string
+ description: Name of connection point b. Can not be empty
+ responses:
+ 200:
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ topic_connection_solution_id:
+ type: integer
+ point_a:
+ type: string
+ point_b:
+ type: string
+ 400:
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ 500:
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /solution/topic_connection/{task_id}:
+ get:
+ tags:
+ - solution
+ summary: Get all topic connection solution from task id
+ operationId: getTopicConnectionSolution
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: task_id
+ in: path
+ required: true
+ description: The unique task id
+ schema:
+ type: integer
+ format: int64
+ minimum: 0
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ points:
+ type: array
+ items:
+ type: string
+ description: String of a connection point in random order
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /solution/topic_connection/{task_id}/all:
+ get:
+ tags:
+ - solution
+ summary: Same as /solution/multiple_choice/{task_id}, but returns more data.
+ This route can only be used by teachers.
+ operationId: getAllTopicConnectionSolutionsExpanded
+ security:
+ - JWT:
+ - read
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: task_id
+ in: path
+ required: true
+ description: The unique task id
+ schema:
+ type: integer
+ format: int64
+ minimum: 0
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ solutions:
+ type: array
+ items:
+ type: object
+ properties:
+ topic_connection_solution_id:
+ type: integer
+ point_a:
+ type: string
+ point_b:
+ type: string
+ /solution/topic_connection/check:
+ post:
+ tags:
+ - solution
+ summary: check topic connection solution
+ operationId: checkTopicConnectionSolution
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ task_id:
+ type: integer
+ connected_points:
+ type: array
+ items:
+ type: object
+ properties:
+ point_a:
+ type: string
+ point_b:
+ type: string
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ correct:
+ type: array
+ items:
+ type: object
+ properties:
+ topic_connection_solution_id:
+ type: integer
+ point_a:
+ type: string
+ point_b:
+ type: string
+ wrong:
+ type: array
+ items:
+ type: object
+ properties:
+ topic_connection_solution_id:
+ type: integer
+ point_a:
+ type: string
+ point_b:
+ type: string
+ missing:
+ type: array
+ items:
+ type: object
+ properties:
+ topic_connection_solution_id:
+ type: integer
+ point_a:
+ type: string
+ point_b:
+ type: string
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /solution/topic_connection/{topic_connection_solution_id}:
+ delete:
+ tags:
+ - solution
+ summary: deletes a topic connection solution
+ operationId: deleteTopicConnectionSolution
+ security:
+ - JWT:
+ - read
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: topic_connection_solution_id
+ in: path
+ required: true
+ schema:
+ type: integer
+ format: int64
+ minimum: 0
+ responses:
+ '200':
+ description: Ok
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /solution/simple_equation:
+ post:
+ tags:
+ - solution
+ summary: Creates a simple equation solution
+ operationId: createSimpleEquationSolution
+ security:
+ - JWT:
+ - read
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ taks_id:
+ type: integer
+ result:
+ type: string
+ steps:
+ type: array
+ items:
+ type: string
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ result:
+ type: string
+ steps:
+ type: array
+ items:
+ type: object
+ properties:
+ simple_equation_solution_id:
+ type: integer
+ step:
+ type: string
+ put:
+ tags:
+ - solution
+ summary: Updates a simple equation
+ operationId: updateSimpleEquationSolution
+ security:
+ - JWT:
+ - read
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ task_id:
+ type: integer
+ result:
+ type: string
+ steps:
+ type: array
+ items:
+ type: object
+ properties:
+ simple_equation_solution_id:
+ type: integer
+ description: If you want to create a new step at the end just
+ increment the last step id by one. If you want to change
+ the order of the steps you can change the simple equation
+ solution ids of all the steps to do so.
+ step:
+ type: string
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ result:
+ type: string
+ steps:
+ type: array
+ items:
+ type: object
+ properties:
+ simple_equation_solution_id:
+ type: integer
+ step:
+ type: string
+ /solution/simple_equation/check:
+ post:
+ tags:
+ - solution
+ summary: check a simple equation solution
+ operationId: checkSimpleEquationSolution
+ security:
+ - JWT:
+ - read
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ task_id:
+ type: integer
+ result:
+ type: string
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ correct:
+ type: boolean
+ result:
+ type: string
+ steps:
+ type: array
+ items:
+ type: object
+ properties:
+ simple_equation_solution_id:
+ type: integer
+ step:
+ type: string
+ /solution/simple_equation/{task_id}:
+ delete:
+ tags:
+ - solution
+ summary: deletes a simple_equation solution
+ operationId: deleteSimpleEquationSolution
+ security:
+ - JWT:
+ - read
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: task_id
+ in: path
+ required: true
+ schema:
+ type: integer
+ format: int64
+ minimum: 0
+ responses:
+ '200':
+ description: Ok
+ /subject:
+ post:
+ tags:
+ - subject
+ summary: Create a subject
+ operationId: createSubject
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ name_key:
+ type: string
+ example: maths
+ description_key:
+ type: string
+ example: calculating numbers
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Subject'
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ get:
+ tags:
+ - subject
+ summary: Get all subjects
+ operationId: getSubjects
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ subjects:
+ type: array
+ items:
+ $ref: '#/components/schemas/Subject'
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /subject/{name_key}:
+ get:
+ tags:
+ - subject
+ summary: Get subject by name_key
+ operationId: getSubjectbyname_key
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: name_key
+ in: path
+ required: true
+ schema:
+ type: string
+ example: maths
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Subject'
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ delete:
+ tags:
+ - subject
+ summary: Delete subject by name_key
+ operationId: deleteSubjectbyname_key
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: name_key
+ in: path
+ required: true
+ schema:
+ type: string
+ example: maths
+ responses:
+ '200':
+ description: Ok
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /subject/{subject_id}:
+ get:
+ tags:
+ - subject
+ summary: Get subject by subject_id
+ operationId: getSubjectbysubject_id
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: subject_id
+ in: path
+ required: true
+ schema:
+ type: integer
+ example: 1
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Subject'
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ delete:
+ tags:
+ - subject
+ summary: Delete subject by subject_id
+ operationId: deleteSubjectbysubject_id
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: subject_id
+ in: path
+ required: true
+ schema:
+ type: integer
+ example: 1
+ responses:
+ '200':
+ description: Ok
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /module:
+ post:
+ tags:
+ - module
+ summary: Create module
+ operationId: createModule
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ name_key:
+ type: string
+ example: geometry
+ subject_name_key:
+ type: string
+ example: maths
+ subject_id:
+ type: integer
+ example: 1
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Module"
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ get:
+ tags:
+ - module
+ summary: Get all modules
+ operationId: getModules
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ modules:
+ type: array
+ items:
+ $ref: '#/components/schemas/Module'
+ /module/{name_key}:
+ get:
+ tags:
+ - module
+ summary: Get module by name_key
+ operationId: getModulebyname_key
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: name_key
+ in: path
+ required: true
+ example: geometry
+ schema:
+ type: string
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Module'
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ delete:
+ tags:
+ - module
+ summary: Delete Module by name_key
+ operationId: deleteModulebyname_key
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: name_key
+ in: path
+ required: true
+ example: geometry
+ schema:
+ type: string
+ responses:
+ '200':
+ description: Ok
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /module/{module_id}:
+ get:
+ tags:
+ - module
+ summary: Get module by module_id
+ operationId: getModulebymodule_id
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: module_id
+ in: path
+ required: true
+ schema:
+ type: integer
+ example: 1
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Module'
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ delete:
+ tags:
+ - module
+ summary: Delete Module by module_id
+ operationId: deleteModulebymodule_id
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: module_id
+ in: path
+ required: true
+ schema:
+ type: integer
+ responses:
+ '200':
+ description: Ok
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /subject/{subject_name_key}/module:
+ get:
+ tags:
+ - subject
+ summary: Get modules from subject
+ operationId: getModulesFromSubjectbyname_key
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: subject_name_key
+ in: path
+ required: true
+ schema:
+ type: string
+ example: maths
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ modules:
+ type: array
+ items:
+ $ref: '#/components/schemas/Module'
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /subject/{subject_id}/module:
+ get:
+ tags:
+ - subject
+ summary: Get modules from subject
+ operationId: getModulesFromSubjectbysubject_id
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: subject_id
+ in: path
+ required: true
+ schema:
+ type: integer
+ example: 1
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ modules:
+ type: array
+ items:
+ $ref: '#/components/schemas/Module'
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /lecture:
+ post:
+ tags:
+ - lecture
+ summary: Create lecture
+ operationId: createLecture
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ name_key:
+ type: string
+ example: squares
+ module_name_key:
+ type: string
+ example: geometry
+ module_id:
+ type: integer
+ example: 1
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ lecture_id:
+ type: integer
+ example: 1
+ name_key:
+ type: string
+ example: squares
+ module_name_key:
+ type: string
+ example: geometry
+ module_id:
+ type: integer
+ example: 1
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ get:
+ tags:
+ - lecture
+ summary: Get all lectures
+ operationId: getLectures
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ lectures:
+ type: array
+ items:
+ $ref: '#/components/schemas/Lecture'
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /lecture/{name_key}:
+ get:
+ tags:
+ - lecture
+ summary: Get lecture by name_key
+ operationId: getLecturebyname_key
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: name_key
+ in: path
+ required: true
+ schema:
+ type: string
+ example: squares
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Lecture'
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ delete:
+ tags:
+ - lecture
+ summary: Delete Lecture by name_key
+ operationId: deleteLecturebyname_key
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: name_key
+ in: path
+ required: true
+ schema:
+ type: string
+ example: squares
+ responses:
+ '200':
+ description: Ok
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /lecture/{lecture_id}:
+ get:
+ tags:
+ - lecture
+ summary: Get lecture by id
+ operationId: getLecturebyid
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: lecture_id
+ in: path
+ required: true
+ schema:
+ type: integer
+ example: 1
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Lecture'
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ delete:
+ tags:
+ - lecture
+ summary: Delete Lecture by id
+ operationId: deleteLecturebyid
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: lecture_id
+ in: path
+ required: true
+ schema:
+ type: integer
+ example: 1
+ responses:
+ '200':
+ description: Ok
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /module/{module_name_key}/lecture:
+ get:
+ tags:
+ - module
+ summary: Get lectures from module_name_key
+ operationId: getLecturesFromModule_name_key
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: module_name_key
+ in: path
+ required: true
+ schema:
+ type: string
+ example: geometry
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ lectures:
+ type: array
+ items:
+ $ref: '#/components/schemas/Lecture'
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /module/{module_id}/lecture:
+ get:
+ tags:
+ - module
+ summary: Get lectures from module_id
+ operationId: getLecturesFromModule_id
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: module_id
+ in: path
+ required: true
+ schema:
+ type: integer
+ example: 1
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ lectures:
+ type: array
+ items:
+ $ref: '#/components/schemas/Lecture'
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /difficulty:
+ post:
+ tags:
+ - difficulty
+ summary: Create difficulty
+ operationId: createDifficulty
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ name_key:
+ type: string
+ example: easy
+
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ difficulty_id:
+ type: integer
+ example: 1
+ name_key:
+ type: string
+ example: easy
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ get:
+ tags:
+ - difficulty
+ summary: Get all difficultys
+ operationId: getDifficultys
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ difficulties:
+ type: array
+ items:
+ $ref: '#/components/schemas/Difficulty'
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /difficulty/{name_key}:
+ get:
+ tags:
+ - difficulty
+ summary: Get difficulty by name_key
+ operationId: getDifficultybyname_key
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ required: false
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: name_key
+ in: path
+ required: true
+ schema:
+ type: string
+ example: easy
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Difficulty'
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ delete:
+ tags:
+ - difficulty
+ summary: Delete difficulty by name_key
+ operationId: deleteDifficultybyname_key
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ required: false
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: name_key
+ in: path
+ required: true
+ schema:
+ type: string
+ example: easy
+ responses:
+ '200':
+ description: Ok
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /difficulty/{difficulty_id}:
+ get:
+ tags:
+ - difficulty
+ summary: Get difficulty by difficulty_id
+ operationId: getDifficultybydifficulty_id
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ required: false
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: difficulty_id
+ in: path
+ required: true
+ schema:
+ type: integer
+ example: 1
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Difficulty'
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ delete:
+ tags:
+ - difficulty
+ summary: Delete difficulty by difficulty_id
+ operationId: deleteDifficultybydifficulty_id
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ required: false
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: difficulty_id
+ in: path
+ required: true
+ schema:
+ type: integer
+ responses:
+ '200':
+ description: Ok
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /task_type:
+ post:
+ tags:
+ - task_type
+ summary: Create task type
+ operationId: createTaskType
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ name_key:
+ type: string
+ example: exercise
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/TaskType'
+
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ get:
+ tags:
+ - task_type
+ summary: Get all task types
+ operationId: getAllTaskTypes
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ schema:
+ type: string
+ - name: X-ServiceToken
+ in: header
+ required: true
+ schema:
+ type: string
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ task_types:
+ type: array
+ items:
+ $ref: '#/components/schemas/TaskType'
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /task_type/{name_key}:
+ get:
+ tags:
+ - task_type
+ summary: Get task type by name_key
+ operationId: getTaskTypebyname_key
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: name_key
+ in: path
+ required: true
+ schema:
+ type: string
+ example: exercise
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/TaskType'
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ delete:
+ tags:
+ - task_type
+ summary: Delete task type by name_key
+ operationId: deleteTaskTypebyname_key
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: name_key
+ in: path
+ required: true
+ schema:
+ type: string
+ example: exercise
+ responses:
+ '200':
+ description: Ok
+ '400':
+ description: Internal Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Internal Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ /task_type/{task_type_id}:
+ get:
+ tags:
+ - task_type
+ summary: Get task type by task_type_id
+ operationId: getTaskTypebyid
+ security:
+ - JWT:
+ - read
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: task_type_id
+ in: path
+ required: true
+ schema:
+ type: integer
+ example: 1
+ responses:
+ '200':
+ description: Ok
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/TaskType'
+ '400':
+ description: User Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ delete:
+ tags:
+ - task_type
+ summary: Delete task type by task_type_id
+ operationId: deleteTaskTypebytask_type_id
+ security:
+ - JWT:
+ - write
+ - ServiceToken:
+ - read
+ - write
+ parameters:
+ - name: Authorization
+ in: header
+ required: true
+ schema:
+ type: string
+ - name: task_type_id
+ in: path
+ required: true
+ schema:
+ type: integer
+ example: 1
+ responses:
+ '200':
+ description: Ok
+ '400':
+ description: Internal Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '500':
+ description: Internal Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+components:
+ securitySchemes:
+ JWT:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+ ServiceToken:
+ type: http
+ scheme: bearer
+ bearerFormat: randomstring
+ responses:
+ BadRequest:
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ Unauthorized:
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ Forbidden:
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ NotFound:
+ description: Not Found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ MethodNotAllowed:
+ description: Method not allowed
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ NotAcceptable:
+ description: Not acceptable
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ RequestTimeout:
+ description: Request timeout
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ Conflict:
+ description: Conflict
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ Gone:
+ description: Gone
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ LengthRequiered:
+ description: Length requiered
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ PreconditionFailed:
+ description: Precondition failed
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ PayloadTooLarge:
+ description: Payload too large
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ RequestURITooLong:
+ description: Request-URI too long
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ RequestRangeNotSatisfiable:
+ description: Request range not satisfiable
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ ExpectationFailed:
+ description: Expectation failed
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ UnprocessableEntity:
+ description: Unprocessable entity
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ Locked:
+ description: Locked
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ TooManyRequests:
+ description: Too many requests
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ NoResponse:
+ description: No response
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ InternalServerError:
+ description: Internal server error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ NotImplemented:
+ description: Not implemented
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ BadGateway:
+ description: BadGateway
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ ServiceUnavailable:
+ description: Service unavailable
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ Insufficient Storage:
+ description: Insufficient Storage
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ LoopDetected:
+ description: Loop detected
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ BandwidthLimitExceeded:
+ description: Bandwidth limit exceeded
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ NotExtended:
+ description: Not extended
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ NetworkAuthenticationRequired:
+ description: Network authentication required
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ NetworkConnectTimeoutError:
+ description: Network connect timeout error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ schemas:
+ Task:
+ type: object
+ properties:
+ task_id:
+ type: integer
+ example: 1
+ author_id:
+ type: string
+ example: 0b870676-1a01-47aa-8402-859fb9806238
+ task:
+ type: string
+ necessary_points:
+ type: integer
+ verified:
+ type: boolean
+ example: false
+ lecture_id:
+ type: integer
+ example: 1
+ task_type_id:
+ type: integer
+ example: 1
+ difficulty_id:
+ type: integer
+ example: 1
+ TaskGroup:
+ type: object
+ properties:
+ task_group_id:
+ type: integer
+ example: 1
+ lecture_id:
+ type: integer
+ example: 1
+ name_key:
+ type: string
+ example: Tolles-Aufgaben-Pack
+ task_ids:
+ type: array
+ items:
+ type: integer
+ example: 1
+ author_id:
+ type: string
+ example: 0b870676-1a01-47aa-8402-859fb9806238
+ difficulty_id:
+ type: integer
+ example: 1
+ Lecture:
+ type: object
+ properties:
+ lecture_id:
+ type: integer
+ example: 1
+ name_key:
+ type: string
+ example: squares
+ module_id:
+ type: integer
+ example: 1
+ Module:
+ type: object
+ properties:
+ module_id:
+ type: integer
+ example: 1
+ name_key:
+ type: string
+ example: geometry
+ subject_id:
+ type: integer
+ example: 1
+ Subject:
+ type: object
+ properties:
+ subject_id:
+ type: integer
+ example: 1
+ name_key:
+ type: string
+ example: maths
+ description_key:
+ type: string
+ example: calculating numbers
+ Difficulty:
+ type: object
+ properties:
+ difficulty_id:
+ type: integer
+ example: 1
+ name_key:
+ type: string
+ example: easy
+ TaskType:
+ type: object
+ properties:
+ task_type_id:
+ type: integer
+ example: 1
+ name_key:
+ type: string
+ example: exercise
+ SampleSolution:
+ type: object
+ properties:
+ task_id:
+ type: integer
+ solution:
+ type: string
+ description: Sample solution
+ Error:
+ oneOf:
+ - $ref: '#/components/schemas/InternalError'
+ - $ref: '#/components/schemas/ValidationError'
+ - $ref: '#/components/schemas/ControllerError'
+ InternalError:
+ type: object
+ properties:
+ timestamp:
+ type: string
+ example: 2020-03-22T20:26:47.367+0000
+ status:
+ type: string
+ example: 404
+ error:
+ type: string
+ example: Not Found
+ message:
+ type: string
+ path:
+ type: string
+ ValidationError:
+ type: object
+ properties:
+ timestamp:
+ type: string
+ example: 2020-03-22T14:52:51.714+0000
+ status:
+ type: string
+ example: 400
+ error:
+ type: string
+ example: Bad Request
+ message:
+ type: string
+ path:
+ type: string
+ errors:
+ type: array
+ items:
+ type: object
+ properties:
+ codes:
+ type: array
+ items:
+ type: string
+ arguments:
+ type: array
+ items:
+ additionalProperties:
+ type: string
+ default_message:
+ type: string
+ object_name:
+ type: string
+ field:
+ type: string
+ rejected_value:
+ type: string
+ binding_failure:
+ type: boolean
+ code:
+ type: string
+ ControllerError:
+ type: object
+ properties:
+ status:
+ type: integer
+ example: 404
+ message_key:
+ type: string
+ example: NOT_FOUND
+ extra:
+ type: string
+ required:
+ - message_key
+ - status
\ No newline at end of file
diff --git a/gateway-core/pom.xml b/gateway-core/pom.xml
new file mode 100644
index 0000000..098f192
--- /dev/null
+++ b/gateway-core/pom.xml
@@ -0,0 +1,292 @@
+
+
+
+ gateway
+ de.the-morpheus.e-du
+ 0.1-SNAPSHOT
+
+ 4.0.0
+
+ gateway-core
+
+
+ 1.9
+ 1.9
+
+
+
+
+
+ org.apache.logging.log4j
+ log4j-core
+ 2.13.2
+ compile
+
+
+ org.apache.logging.log4j
+ log4j-api
+
+
+
+
+ org.apache.logging.log4j
+ log4j-api
+ 2.13.2
+ compile
+
+
+ org.slf4j
+ slf4j-api
+ 1.7.25
+ compile
+
+
+ org.apache.logging.log4j
+ log4j-slf4j-impl
+ 2.13.2
+ compile
+
+
+ io.sentry
+ sentry-log4j2
+ 1.7.30
+ compile
+
+
+ org.apache.logging.log4j
+ log4j-api
+
+
+ org.apache.logging.log4j
+ log4j-core
+
+
+ org.apache.logging.log4j
+ log4j-to-slf4j
+
+
+
+
+
+ org.projectlombok
+ lombok
+ 1.18.12
+ compile
+
+
+ javax.validation
+ validation-api
+ 2.0.1.Final
+ compile
+
+
+ com.auth0
+ java-jwt
+ 3.10.1
+ compile
+
+
+ com.squareup.okhttp3
+ okhttp
+ 4.5.0
+ compile
+
+
+ com.google.code.gson
+ gson
+ 2.8.6
+ compile
+
+
+ javax.servlet
+ javax.servlet-api
+ 4.0.1
+ compile
+
+
+ com.google.code.findbugs
+ jsr305
+ 1.3.9
+ compile
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+ 2.3.0.M4
+ compile
+
+
+ commons-logging
+ commons-logging
+
+
+ org.springframework.boot
+ spring-boot-starter-logging
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter
+ 2.3.0.M4
+
+
+ commons-logging
+ commons-logging
+
+
+ org.springframework.boot
+ spring-boot-starter-logging
+
+
+
+
+ org.springframework.boot
+ spring-boot-devtools
+ 2.2.6.RELEASE
+
+
+ commons-logging
+ commons-logging
+
+
+ org.springframework.boot
+ spring-boot-starter-logging
+
+
+
+
+ org.springframework
+ spring-webmvc
+ 5.2.6.RELEASE
+
+
+ commons-logging
+ commons-logging
+
+
+ org.springframework.boot
+ spring-boot-starter-logging
+
+
+
+
+
+
+ io.micrometer
+ micrometer-core
+ 1.4.1
+ compile
+
+
+ io.micrometer
+ micrometer-registry-influx
+ 1.4.1
+ compile
+
+
+
+
+ com.graphql-java-kickstart
+ graphql-spring-boot-starter
+ 7.0.0
+ compile
+
+
+ com.graphql-java-kickstart
+ playground-spring-boot-starter
+ 7.0.0
+ compile
+
+
+ com.graphql-java-kickstart
+ graphql-java-tools
+ 6.0.2
+ compile
+
+
+ com.careykevin
+ graphql-actuator
+ 0.0.3
+ compile
+
+
+
+
+
+
+
+ pl.project13.maven
+ git-commit-id-plugin
+ 4.0.0
+
+
+ get-the-git-infos
+
+ revision
+
+
+
+
+ ${project.basedir}/.git
+ git
+ false
+ true
+ ${project.build.outputDirectory}/git.properties
+ json
+
+ false
+ false
+ -dirty
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+ org.apache.maven.plugins
+ maven-checkstyle-plugin
+ 3.1.1
+
+ checkstyle.xml
+ UTF-8
+ true
+ true
+ false
+
+
+
+ validate
+ validate
+
+ check
+
+
+
+
+
+
+
+
+
+ spring-milestones
+ Spring Milestones
+ https://repo.spring.io/milestone
+
+
+
+
+ spring-milestones
+ Spring Milestones
+ https://repo.spring.io/milestone
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/de/themorpheus/edu/gateway/GatewayApplication.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/GatewayApplication.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/GatewayApplication.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/GatewayApplication.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/backend/BackendAPI.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/backend/BackendAPI.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/backend/BackendAPI.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/backend/BackendAPI.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/backend/Service.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/backend/Service.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/backend/Service.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/backend/Service.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/backend/UserService.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/backend/UserService.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/backend/UserService.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/backend/UserService.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/backend/user/UserCreateDTO.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/backend/user/UserCreateDTO.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/backend/user/UserCreateDTO.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/backend/user/UserCreateDTO.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/backend/user/UserErrorResponseDTO.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/backend/user/UserErrorResponseDTO.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/backend/user/UserErrorResponseDTO.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/backend/user/UserErrorResponseDTO.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/backend/user/UserLoginRequestDTO.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/backend/user/UserLoginRequestDTO.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/backend/user/UserLoginRequestDTO.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/backend/user/UserLoginRequestDTO.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/backend/user/UserLoginResponseDTO.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/backend/user/UserLoginResponseDTO.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/backend/user/UserLoginResponseDTO.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/backend/user/UserLoginResponseDTO.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/graphql/dto/generic/ServiceInfoDTO.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/dto/generic/ServiceInfoDTO.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/graphql/dto/generic/ServiceInfoDTO.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/dto/generic/ServiceInfoDTO.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/graphql/dto/report/TicketDTO.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/dto/report/TicketDTO.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/graphql/dto/report/TicketDTO.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/dto/report/TicketDTO.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/graphql/dto/task/DifficultyDTO.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/dto/task/DifficultyDTO.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/graphql/dto/task/DifficultyDTO.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/dto/task/DifficultyDTO.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/graphql/dto/task/LectureDTO.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/dto/task/LectureDTO.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/graphql/dto/task/LectureDTO.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/dto/task/LectureDTO.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/graphql/dto/task/ModuleDTO.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/dto/task/ModuleDTO.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/graphql/dto/task/ModuleDTO.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/dto/task/ModuleDTO.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/graphql/dto/task/SubjectDTO.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/dto/task/SubjectDTO.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/graphql/dto/task/SubjectDTO.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/dto/task/SubjectDTO.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/graphql/dto/task/TaskDTO.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/dto/task/TaskDTO.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/graphql/dto/task/TaskDTO.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/dto/task/TaskDTO.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/graphql/dto/task/TaskTypeDTO.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/dto/task/TaskTypeDTO.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/graphql/dto/task/TaskTypeDTO.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/dto/task/TaskTypeDTO.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/graphql/dto/user/JwtResultDTO.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/dto/user/JwtResultDTO.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/graphql/dto/user/JwtResultDTO.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/dto/user/JwtResultDTO.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/graphql/dto/user/UserAuthDTO.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/dto/user/UserAuthDTO.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/graphql/dto/user/UserAuthDTO.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/dto/user/UserAuthDTO.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/graphql/dto/user/UserAuthResultDTO.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/dto/user/UserAuthResultDTO.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/graphql/dto/user/UserAuthResultDTO.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/dto/user/UserAuthResultDTO.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/graphql/dto/user/UserDTO.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/dto/user/UserDTO.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/graphql/dto/user/UserDTO.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/dto/user/UserDTO.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/graphql/dto/user/UserRegisterDTO.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/dto/user/UserRegisterDTO.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/graphql/dto/user/UserRegisterDTO.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/dto/user/UserRegisterDTO.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/graphql/dto/user/UserRegisterResultDTO.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/dto/user/UserRegisterResultDTO.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/graphql/dto/user/UserRegisterResultDTO.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/dto/user/UserRegisterResultDTO.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/mutation/user/AuthenticationResolver.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/mutation/user/AuthenticationResolver.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/graphql/resolver/mutation/user/AuthenticationResolver.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/mutation/user/AuthenticationResolver.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/ServiceInfoResolver.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/ServiceInfoResolver.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/ServiceInfoResolver.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/ServiceInfoResolver.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/report/TicketResolver.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/report/TicketResolver.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/report/TicketResolver.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/report/TicketResolver.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/task/DifficultyResolver.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/task/DifficultyResolver.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/task/DifficultyResolver.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/task/DifficultyResolver.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/task/LectureResolver.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/task/LectureResolver.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/task/LectureResolver.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/task/LectureResolver.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/task/ModuleResolver.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/task/ModuleResolver.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/task/ModuleResolver.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/task/ModuleResolver.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/task/SubjectResolver.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/task/SubjectResolver.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/task/SubjectResolver.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/task/SubjectResolver.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/task/TaskResolver.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/task/TaskResolver.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/task/TaskResolver.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/task/TaskResolver.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/task/TaskTypeResolver.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/task/TaskTypeResolver.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/task/TaskTypeResolver.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/task/TaskTypeResolver.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/user/UserResolver.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/user/UserResolver.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/user/UserResolver.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/query/user/UserResolver.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/util/DeviceId.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/util/DeviceId.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/graphql/resolver/util/DeviceId.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/util/DeviceId.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/util/HeaderUtil.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/util/HeaderUtil.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/graphql/resolver/util/HeaderUtil.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/util/HeaderUtil.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/util/JsonWebToken.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/util/JsonWebToken.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/graphql/resolver/util/JsonWebToken.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/util/JsonWebToken.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/util/RefreshToken.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/util/RefreshToken.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/graphql/resolver/util/RefreshToken.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/graphql/resolver/util/RefreshToken.java
diff --git a/src/main/java/de/themorpheus/edu/gateway/util/GitInfo.java b/gateway-core/src/main/java/de/themorpheus/edu/gateway/util/GitInfo.java
similarity index 100%
rename from src/main/java/de/themorpheus/edu/gateway/util/GitInfo.java
rename to gateway-core/src/main/java/de/themorpheus/edu/gateway/util/GitInfo.java
diff --git a/src/main/resources/application.properties b/gateway-core/src/main/resources/application.properties
similarity index 100%
rename from src/main/resources/application.properties
rename to gateway-core/src/main/resources/application.properties
diff --git a/src/main/resources/log4j2.xml b/gateway-core/src/main/resources/log4j2.xml
similarity index 100%
rename from src/main/resources/log4j2.xml
rename to gateway-core/src/main/resources/log4j2.xml
diff --git a/src/main/resources/schema.graphqls b/gateway-core/src/main/resources/schema.graphqls
similarity index 100%
rename from src/main/resources/schema.graphqls
rename to gateway-core/src/main/resources/schema.graphqls
diff --git a/src/main/resources/security.ignored b/gateway-core/src/main/resources/security.ignored
similarity index 100%
rename from src/main/resources/security.ignored
rename to gateway-core/src/main/resources/security.ignored
diff --git a/src/main/resources/sentry.properties b/gateway-core/src/main/resources/sentry.properties
similarity index 100%
rename from src/main/resources/sentry.properties
rename to gateway-core/src/main/resources/sentry.properties
diff --git a/pom.xml b/pom.xml
index 529c5b5..7fed8f6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -2,12 +2,11 @@
4.0.0
-
- org.springframework.boot
- spring-boot-starter-parent
- 2.2.6.RELEASE
-
-
+ pom
+
+ gateway-core
+ backend-api
+
de.the-morpheus.e-du
gateway
@@ -15,222 +14,8 @@
gateway
it collects and filters information requested by the frontend using GraphQL
-
-
-
- org.apache.logging.log4j
- log4j-core
- 2.13.2
- compile
-
-
- org.apache.logging.log4j
- log4j-api
-
-
-
-
- org.apache.logging.log4j
- log4j-api
- 2.13.2
- compile
-
-
- org.slf4j
- slf4j-api
- 1.7.25
- compile
-
-
- org.apache.logging.log4j
- log4j-slf4j-impl
- 2.13.2
- compile
-
-
- io.sentry
- sentry-log4j2
- 1.7.30
- compile
-
-
- org.apache.logging.log4j
- log4j-api
-
-
- org.apache.logging.log4j
- log4j-core
-
-
- org.apache.logging.log4j
- log4j-to-slf4j
-
-
-
-
-
- org.projectlombok
- lombok
- 1.18.12
- compile
-
-
- javax.validation
- validation-api
- 2.0.1.Final
- compile
-
-
- com.auth0
- java-jwt
- 3.10.1
- compile
-
-
- com.squareup.okhttp3
- okhttp
- 4.5.0
- compile
-
-
- com.google.code.gson
- gson
- 2.8.6
- compile
-
-
- javax.servlet
- javax.servlet-api
- 4.0.1
- compile
-
-
- com.google.code.findbugs
- jsr305
- 1.3.9
- compile
-
-
-
-
- org.springframework.boot
- spring-boot-starter-actuator
- 2.3.0.M4
- compile
-
-
- commons-logging
- commons-logging
-
-
- org.springframework.boot
- spring-boot-starter-logging
-
-
-
-
- org.springframework.boot
- spring-boot-starter
- 2.3.0.M4
-
-
- commons-logging
- commons-logging
-
-
- org.springframework.boot
- spring-boot-starter-logging
-
-
-
-
- org.springframework.boot
- spring-boot-devtools
- 2.2.6.RELEASE
-
-
- commons-logging
- commons-logging
-
-
- org.springframework.boot
- spring-boot-starter-logging
-
-
-
-
- org.springframework
- spring-webmvc
- 5.2.6.RELEASE
-
-
- commons-logging
- commons-logging
-
-
- org.springframework.boot
- spring-boot-starter-logging
-
-
-
-
-
-
- io.micrometer
- micrometer-core
- 1.4.1
- compile
-
-
- io.micrometer
- micrometer-registry-influx
- 1.4.1
- compile
-
-
-
-
- com.graphql-java-kickstart
- graphql-spring-boot-starter
- 7.0.0
- compile
-
-
- com.graphql-java-kickstart
- playground-spring-boot-starter
- 7.0.0
- compile
-
-
- com.graphql-java-kickstart
- graphql-java-tools
- 6.0.2
- compile
-
-
- com.careykevin
- graphql-actuator
- 0.0.3
- compile
-
-
-
-
-
pl.project13.maven
git-commit-id-plugin
@@ -257,10 +42,6 @@
-
- org.springframework.boot
- spring-boot-maven-plugin
-
org.apache.maven.plugins
maven-checkstyle-plugin
@@ -285,19 +66,4 @@
-
-
- spring-milestones
- Spring Milestones
- https://repo.spring.io/milestone
-
-
-
-
- spring-milestones
- Spring Milestones
- https://repo.spring.io/milestone
-
-
-