You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
245 lines
6.2 KiB
245 lines
6.2 KiB
swagger: "2.0"
|
|
info:
|
|
description: "Dies ist eine API, die es ermöglicht Daten zu Stunden-, Vertretungs-, oder Klausurplänen zu erhalten."
|
|
version: "1.0.0"
|
|
title: "Organizer"
|
|
termsOfService: "https://organizer.martin-luther.schule/terms"
|
|
contact:
|
|
email: "info@jonasfranz.software"
|
|
license:
|
|
name: "MIT"
|
|
url: "https://opensource.org/licenses/MIT"
|
|
host: "api.organizer.martin-luther.schule"
|
|
basePath: "/v1"
|
|
tags:
|
|
- name: "replacement lessons"
|
|
description: "Information about replacement and canceled lessons"
|
|
- name: "timetable"
|
|
description: "Zugriff auf Stundenpläne"
|
|
- name: "examination scheduling"
|
|
description: "Zugriff auf Klausurtermine"
|
|
schemes:
|
|
- "http"
|
|
- "https"
|
|
paths:
|
|
/replacement/findAll:
|
|
get:
|
|
tags:
|
|
- "replacement lessons"
|
|
summary: "Finds all available replacement lessons"
|
|
operationId: "findReplacementLessons"
|
|
security:
|
|
- passwordAuth: []
|
|
produces:
|
|
- "application/json"
|
|
responses:
|
|
200:
|
|
description: "successful operation"
|
|
schema:
|
|
type: "array"
|
|
items:
|
|
$ref: "#/definitions/ReplacementLesson"
|
|
/replacement/findByDate:
|
|
get:
|
|
tags:
|
|
- "replacement lessons"
|
|
summary: "Finds replacement lessons by date"
|
|
operationId: "findReplacementLessonsByDate"
|
|
security:
|
|
- passwordAuth: []
|
|
produces:
|
|
- "application/json"
|
|
parameters:
|
|
- name: "date"
|
|
in: "query"
|
|
description: "Date of the searched replacement lessons"
|
|
type: "string"
|
|
format: "date"
|
|
required: true
|
|
responses:
|
|
200:
|
|
description: "successful operation"
|
|
schema:
|
|
type: "array"
|
|
items:
|
|
$ref: "#/definitions/ReplacementLesson"
|
|
410:
|
|
description: "Date is not or no longer available"
|
|
/replacement/{id}:
|
|
get:
|
|
tags:
|
|
- "replacement lessons"
|
|
summary: "Get replacement lesson by id"
|
|
operationId: "getReplacement"
|
|
security:
|
|
- passwordAuth: []
|
|
produces:
|
|
- "application/json"
|
|
parameters:
|
|
- name: "id"
|
|
in: "path"
|
|
description: "Replacement lesson's id"
|
|
type: "integer"
|
|
format: "int64"
|
|
required: true
|
|
responses:
|
|
200:
|
|
description: "successful operation"
|
|
schema:
|
|
$ref: "#/definitions/ReplacementLesson"
|
|
404:
|
|
description: "Cannot find a matching replacement lesson"
|
|
410:
|
|
description: "The lesson is no longer available."
|
|
/course/{course}/replacements:
|
|
get:
|
|
tags:
|
|
- "replacement lessons"
|
|
summary: "Get replacement lesson of a course/class"
|
|
operationId: "getReplacementByCourse"
|
|
security:
|
|
- passwordAuth: []
|
|
produces:
|
|
- "application/json"
|
|
parameters:
|
|
- name: "course"
|
|
in: "path"
|
|
type: "string"
|
|
required: true
|
|
responses:
|
|
200:
|
|
description: "successful operation"
|
|
schema:
|
|
type: "array"
|
|
items:
|
|
$ref: "#/definitions/ReplacementLesson"
|
|
/course/{course}/timetable:
|
|
get:
|
|
tags:
|
|
- "timetable"
|
|
summary: "Returns course's timetable"
|
|
operationId: "getTimetable"
|
|
security:
|
|
- passwordAuth: []
|
|
produces:
|
|
- "application/json"
|
|
parameters:
|
|
- name: "course"
|
|
in: "path"
|
|
type: "string"
|
|
required: true
|
|
responses:
|
|
200:
|
|
description: "Lessons sorted by weekday, period and teacher."
|
|
schema:
|
|
type: "array"
|
|
items:
|
|
$ref: '#/definitions/Lesson'
|
|
404:
|
|
description: "Cannot find the course"
|
|
/course/{course}/exams:
|
|
get:
|
|
tags:
|
|
- "examination scheduling"
|
|
summary: "Returns course's exams"
|
|
operationId: "getExams"
|
|
security:
|
|
- passwordAuth: []
|
|
produces:
|
|
- "application/json"
|
|
parameters:
|
|
- name: "course"
|
|
in: "path"
|
|
type: "string"
|
|
required: true
|
|
responses:
|
|
200:
|
|
description: "Lessons sorted by weekday and period"
|
|
schema:
|
|
type: "array"
|
|
items:
|
|
$ref: '#/definitions/Exam'
|
|
404:
|
|
description: "Cannot find the course"
|
|
|
|
securityDefinitions:
|
|
passwordAuth:
|
|
type: basic
|
|
definitions:
|
|
Exam:
|
|
type: "object"
|
|
properties:
|
|
id:
|
|
type: "integer"
|
|
format: "int64"
|
|
x-go-name: "ID"
|
|
date:
|
|
type: "string"
|
|
format: "date"
|
|
startPeriod:
|
|
type: "integer"
|
|
minimum: 1
|
|
maximum: 15
|
|
description: "The period of the day where the exam starts"
|
|
endPeriod:
|
|
type: "integer"
|
|
minimum: 1
|
|
maximum: 15
|
|
description: "The period of the day where the exam ends"
|
|
lesson:
|
|
$ref: '#/definitions/Lesson'
|
|
Lesson:
|
|
type: "object"
|
|
properties:
|
|
weekday:
|
|
type: "integer"
|
|
minimum: 0
|
|
maximum: 7
|
|
period:
|
|
type: "integer"
|
|
minimum: 1
|
|
maximum: 15
|
|
description: "The period of the day where the lesson is"
|
|
course:
|
|
type: "string"
|
|
description: "Class or Course"
|
|
subject:
|
|
$ref: "#/definitions/Subject"
|
|
teacher:
|
|
$ref: "#/definitions/Teacher"
|
|
additionalInformation:
|
|
type: string
|
|
description: "An additional information like 'Every 14 days only'"
|
|
room:
|
|
type: string
|
|
ReplacementLesson:
|
|
type: "object"
|
|
properties:
|
|
id:
|
|
type: "integer"
|
|
format: "int64"
|
|
x-go-name: "ID"
|
|
date:
|
|
type: "string"
|
|
format: "date"
|
|
lesson:
|
|
$ref: '#/definitions/Lesson'
|
|
replacementLesson:
|
|
$ref: '#/definitions/Lesson'
|
|
Subject:
|
|
type: 'object'
|
|
properties:
|
|
abbreviation:
|
|
type: "string"
|
|
description: "The abbreviation of the subject like LB for sports."
|
|
name:
|
|
type: "string"
|
|
Teacher:
|
|
type: "object"
|
|
properties:
|
|
identifier:
|
|
type: "string"
|
|
description: "An unique string that is mostly the abbreviation of the teacher's name"
|
|
name:
|
|
type: "string"
|
|
description: "The family name of the teacher" |