Files
arbeitszeitmessung/Docker/arbeitszeitmessung.yaml

138 lines
3.5 KiB
YAML

openapi: 3.0.3
info:
title: Arbeitszeitmessung - OpenAPI 3.0
description: |-
This demos the API for the Arbeitszeitmessung Project
version: 0.1.0
externalDocs:
description: Git-Repository
url: https://git.letsstein.de/tom/arbeitszeitmessung
servers:
- url: http://localhost:8000
tags:
- name: booking
description: all Bookings
paths:
/time:
put:
tags:
- booking
summary: Update a existing booking
description: Update an existing booking by Id
operationId: updateBooking
parameters:
- name: bookingID
in: query
description: Booking ID to update
required: true
schema:
type: string
requestBody:
description: Update an existent booking in the db. Not all values have to be updated
content:
application/json:
schema:
$ref: '#/components/schemas/Booking'
required: true
responses:
'200':
description: Booking Updated
content:
application/json:
schema:
$ref: '#/components/schemas/Booking'
'400':
description: Invalid ID supplied
'500':
description: Server Error
get:
tags:
- booking
summary: Gets all the bookings limited
description: Returns all the bookings optionally filtered with cardID
parameters:
- name: cardID
in: query
description: CardID to filter for
required: false
schema:
type: string
operationId: addPet
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Booking'
'400':
description: Invalid cardID
/time/new:
put:
tags:
- booking
summary: Create new Booking
description: Creates a new booking with the supplied parameters
operationId: createBooking
parameters:
- name: cardID
in: query
description: id of the RFID card scanned
required: true
schema:
type: string
- name: readerID
in: query
description: id of the RFID reader scanning the card
required: true
schema:
type: string
- name: bookingType
in: query
description: booking Type
required: true
schema:
type: integer
enum:
- 1
- 2
- 255
responses:
'200':
description: successfully created booking
content:
application/json:
schema:
$ref: '#/components/schemas/Booking'
'409':
description: Same booking type as last booking
components:
schemas:
Booking:
type: object
properties:
id:
type: integer
format: int64
example: 100
cardID:
type: string
example: test_card
readerID:
type: string
example: test_reader
bookingType:
type: integer
example: 1
enum:
- 1
- 2
- 255
loggedTime:
type: string
format: date-time
example: 2024-09-05T08:51:12.670827Z
xml:
name: booking