Files
htwkalender/services/data-manager/openapi.yml

343 lines
7.1 KiB
YAML

openapi: 3.0.4
info:
title: HTWKalendar API
version: 1.0.2
servers:
- url: https://cal.htwk-leipzig.de
description: Production server
- url: https://dev.cal.fsr.imn.htwk-leipzig.de
description: Development server
- url: http://localhost:8090
description: Local server
paths:
/api/fetch/events:
get:
summary: Fetch Seminar Plans
security:
- ApiKeyAuth: []
responses:
'200':
description: Successful response
/api/fetch/daily/events:
get:
summary: Fetch daily events from remote
security:
- ApiKeyAuth: []
responses:
'200':
description: Successful response
/api/fetch/group:
get:
summary: Fetch or update modules for a seminar group
security:
- ApiKeyAuth: []
parameters:
- name: seminarGroup
in: query
required: true
schema:
type: string
responses:
'200':
description: Successful response
/api/fetch/groups:
get:
summary: Fetch Seminar Groups
security:
- ApiKeyAuth: []
responses:
'200':
description: Successful response
/api/fetch/sports:
get:
summary: Fetch Sport Events from HTWK Leipzig
security:
- ApiKeyAuth: [ ]
responses:
'200':
description: Successful response
/api/modules:
get:
summary: Get all modules distinct
responses:
'200':
description: Successful response
delete:
summary: Delete all events
security:
- ApiKeyAuth: []
responses:
'200':
description: Successful response
/api/rooms:
get:
summary: Get Rooms
responses:
'200':
description: Successful response
/api/schedule/day:
get:
summary: Get Day Schedule
parameters:
- name: room
in: query
required: true
schema:
type: string
- name: date
in: query
required: true
schema:
type: string
responses:
'200':
description: Successful response
/api/schedule:
get:
summary: Get Schedule
parameters:
- name: room
in: query
required: true
schema:
type: string
- name: from
in: query
description: start date
required: true
schema:
type: string
- name: to
in: query
description: end date
required: true
schema:
type: string
- name: mapped
in: query
description: optional mapping flag
required: false
schema:
type: string
responses:
'200':
description: Successful response
/api/course/modules:
get:
summary: Get Modules for Course
parameters:
- name: course
in: query
required: true
schema:
type: string
- name: semester
in: query
required: true
schema:
type: string
responses:
'200':
description: Successful response
/api/module:
get:
summary: Get Module
parameters:
- name: uuid
in: query
required: true
schema:
type: string
responses:
'200':
description: Successful response
/api/courses:
get:
summary: Get courses or courses by semester
parameters:
- name: semester
in: query
required: false
schema:
type: string
responses:
'200':
description: Successful response
/api/rooms/free:
get:
summary: Get Free Rooms
parameters:
- name: from
in: query
required: true
schema:
type: string
- name: to
in: query
required: true
schema:
type: string
responses:
'200':
description: Successful response
/api/courses/events:
get:
summary: Get Courses that have Events for specific semester
parameters:
- name: semester
in: query
required: true
schema:
type: string
responses:
'200':
description: Successful response
/api/events/types:
get:
summary: Get event types
responses:
'200':
description: Successful response
/api/events:
delete:
summary: Delete events for a course and semester
security:
- ApiKeyAuth: []
parameters:
- name: course
in: query
schema:
type: string
- name: semester
in: query
schema:
type: string
responses:
'200':
description: Successful response
/api/feed:
post:
summary: Create iCal Feed
requestBody:
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/FeedCollection'
responses:
'200':
description: Successful response
/api/feeds/{token}:
delete:
summary: Delete iCal feed
parameters:
- name: token
in: path
required: true
schema:
type: string
responses:
'200':
description: Successful response
/api/collections/feeds/records/{id}:
get:
tags:
- iCal
- Feed
summary: Get Modules selected for iCal feed
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
description: calendar token
responses:
'200':
description: Successful response
/api/feeds/migrate:
get:
summary: Migrates all iCal Feeds in the database to the new format
security:
- ApiKeyAuth: []
responses:
'200':
description: Successful response
security:
- ApiKeyAuth: []
components:
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: Authorization
schemas:
Module:
type: object
properties:
name:
type: string
uuid:
type: string
format: uuid
course:
type: string
userDefinedName:
type: string
prof:
type: string
semester:
type: string
reminder:
type: boolean
events:
type: array
items:
type: string
FeedCollection:
type: object
properties:
name:
type: string
uuid:
type: string
course:
type: string
userDefinedName:
type: string
prof:
type: string
semester:
type: string
reminder:
type: boolean
events:
type: array
items:
type: string