mirror of
https://gitlab.dit.htwk-leipzig.de/htwk-software/htwkalender-pwa.git
synced 2025-08-10 13:43:52 +02:00

# Conflicts: # backend/go.mod # frontend/index.html # frontend/package-lock.json # frontend/package.json # frontend/public/themes/lara-dark-blue/theme.css # frontend/public/themes/lara-dark-blue/theme.css.map # frontend/public/themes/lara-light-blue/theme.css # frontend/public/themes/lara-light-blue/theme.css.map # frontend/src/App.vue # frontend/src/components/DarkModeSwitcher.vue # frontend/src/i18n/index.ts # frontend/src/main.ts # frontend/src/router/index.ts # frontend/src/view/CalendarLink.vue # frontend/src/view/edit/EditCalendar.vue # frontend/vite.config.ts # reverseproxy.conf # reverseproxy.local.conf # services/data-manager/main.go # services/data-manager/model/roomOccupancyModel.go # services/data-manager/service/addRoute.go # services/data-manager/service/addSchedule.go # services/data-manager/service/db/dbGroups.go # services/data-manager/service/feed/feedFunctions.go # services/data-manager/service/fetch/sport/sportFetcher.go # services/data-manager/service/fetch/v1/fetchSeminarEventService.go # services/data-manager/service/fetch/v1/fetchSeminarGroupService.go # services/data-manager/service/fetch/v2/fetcher.go # services/data-manager/service/functions/filter.go # services/data-manager/service/functions/filter_test.go # services/data-manager/service/functions/time/parse.go # services/data-manager/service/room/roomService.go # services/data-manager/service/room/roomService_test.go # services/go.sum # services/ical/service/connector/grpc/client.go
317 lines
7.3 KiB
YAML
317 lines
7.3 KiB
YAML
openapi: 3.0.0
|
|
info:
|
|
title: HTWKalendar API
|
|
version: 1.0.1
|
|
servers:
|
|
- url: https://htwkalendar.de
|
|
description: Production 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/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:
|
|
delete:
|
|
summary: Delete Module
|
|
security:
|
|
- ApiKeyAuth: []
|
|
responses:
|
|
'200':
|
|
description: Successful response
|
|
/api/rooms:
|
|
get:
|
|
summary: Get Rooms
|
|
responses:
|
|
'200':
|
|
description: Successful response
|
|
/api/rooms/free:
|
|
get:
|
|
summary: Get Free Rooms
|
|
parameters:
|
|
- name: from
|
|
in: query
|
|
description: start date
|
|
example: "2006-01-02T15:04:05Z"
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: to
|
|
in: query
|
|
description: end date
|
|
example: "2006-01-02T15:04:05Z"
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Successful response
|
|
/api/schedule/day:
|
|
get:
|
|
summary: Get Day Schedule
|
|
parameters:
|
|
- name: room
|
|
in: query
|
|
description: room
|
|
example: "LN006-H"
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: date
|
|
in: query
|
|
description: date
|
|
example: "2023-11-26"
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Successful response
|
|
/api/schedule:
|
|
get:
|
|
summary: Get Schedule
|
|
parameters:
|
|
- name: room
|
|
in: query
|
|
description: room
|
|
example: "LN006-H"
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: from
|
|
in: query
|
|
description: date
|
|
example: "2023-11-26"
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: to
|
|
in: query
|
|
description: date
|
|
example: "2023-11-30"
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Successful response
|
|
/api/schedule/rooms:
|
|
get:
|
|
summary: Get Room Occupancy
|
|
parameters:
|
|
- name: from
|
|
in: query
|
|
description: date
|
|
example: "2024-12-24T00:00:00.000Z"
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: to
|
|
in: query
|
|
description: date
|
|
example: "2024-12-25T00:00:00.000Z"
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Successful response
|
|
content:
|
|
application/bson:
|
|
schema:
|
|
$ref: '#/components/schemas/RoomOccupancy'
|
|
/api/createFeed:
|
|
post:
|
|
summary: Create iCal Feed
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Module'
|
|
required:
|
|
- name
|
|
- modules
|
|
responses:
|
|
'200':
|
|
description: Successful response
|
|
/api/feed:
|
|
get:
|
|
summary: Get iCal Feed for calendar
|
|
parameters:
|
|
- name: token
|
|
in: query
|
|
description: calendar token
|
|
required: true
|
|
example: "ldluwzg3e73ffxq"
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Successful response
|
|
/api/course/modules:
|
|
get:
|
|
summary: Get Modules for Course
|
|
parameters:
|
|
- name: course
|
|
in: query
|
|
description: course
|
|
required: true
|
|
example: "Software Engineering"
|
|
schema:
|
|
type: string
|
|
- name: semester
|
|
in: query
|
|
description: semester
|
|
required: true
|
|
example: "ws"
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Successful response
|
|
/api/module:
|
|
get:
|
|
summary: Get Module
|
|
parameters:
|
|
- name: uuid
|
|
in: query
|
|
description: uuid
|
|
required: true
|
|
example: "d0b3a0e0-2f1a-4e1a-8b0a-0b9e1a0b9e1a"
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Successful response
|
|
/api/courses:
|
|
get:
|
|
summary: Get Courses
|
|
responses:
|
|
'200':
|
|
description: Successful response
|
|
/api/courses/events:
|
|
get:
|
|
summary: Get Courses that have Events for specific semester
|
|
parameters:
|
|
- name: semester
|
|
in: query
|
|
description: semester
|
|
required: true
|
|
example: "ws"
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Successful response
|
|
/api/collections/feeds/records/{id}:
|
|
get:
|
|
summary: Get Modules selected for iCal feed
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: calendar token
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Successful response
|
|
/api/events:
|
|
delete:
|
|
summary: Delete Event
|
|
security:
|
|
- ApiKeyAuth: []
|
|
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
|
|
description: name
|
|
example: "Software Engineering"
|
|
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
|
|
RoomOccupancy:
|
|
type: object
|
|
properties:
|
|
start:
|
|
type: string
|
|
format: date-time
|
|
granularity:
|
|
type: integer
|
|
blocks:
|
|
type: integer
|
|
rooms:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
occupancy:
|
|
type: string
|
|
format: binary
|
|
required:
|
|
- name
|
|
- occupancy
|
|
required:
|
|
- start
|
|
- granularity
|
|
- blocks
|
|
- rooms
|