diff --git a/README.md b/README.md index 9411a3c..7d59d51 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,14 @@ htwkalender-demo Execute the following api calls to fetch data manually from HTWK and store it in the database: +Both api calls need a token to be executed. +You can get a token by logging in to the admin ui and copy the token from the local storage. +Add this attribute to the request header of the api call: + +``` +Authorization : eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MDE3MDA3ODQsImlkIjoicnA0Ym54YXNyczM5emR4IiwidHlwZSI6ImFkbWluIn0.j7Bt3-uaZ8CoNt8D9Oxjk7ZwvHDGZJy1xe3aq4BID3w +``` + The first command will fetch all groups and store them in the database. This should be done quick in a few seconds (0-5s). When you execute the command again, it will update the groups in the diff --git a/backend/openapi.yml b/backend/openapi.yml index 7f51ae3..69af1c5 100644 --- a/backend/openapi.yml +++ b/backend/openapi.yml @@ -11,30 +11,150 @@ paths: /api/fetchPlans: get: summary: Fetch Seminar Plans + security: + - ApiKeyAuth: [] responses: '200': description: Successful response /api/fetchGroups: get: summary: Fetch Seminar Groups + 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/feedURL: + /api/schedule/day: get: - summary: Get iCal Feed URL + 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/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 @@ -51,3 +171,52 @@ paths: 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 \ No newline at end of file