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 description: Docker Server - url: http://localhost:8080 description: Local Development tags: - name: booking description: all Bookings paths: /time: get: tags: - booking summary: Gets all the bookings from one card_uid description: Returns all the bookings optionally filtered with cardID operationId: getBooking parameters: - name: card_uid in: query description: CardID to filter for required: true schema: type: string - name: time_from in: query description: Timestamp since when all bookings are shown (default=1 month ago) required: false schema: type: string example: "2025-02-28" - name: time_to in: query description: Timestamp till when all bookings are shown (default=today) required: false schema: type: string example: "2025-02-28" responses: "200": description: Successful operation content: application/json: schema: type: array items: $ref: "#/components/schemas/BookingGrouped" "400": description: Invalid cardID /time/new: put: tags: - booking summary: Create new Booking description: Creates a new booking with the supplied parameters operationId: pcreateBooking parameters: - in: header name: Authorization description: Predefined API Key to authorize access schema: type: string - name: card_uid in: query description: id of the RFID card scanned required: true schema: type: string - name: geraet_id in: query description: id of the RFID reader scanning the card required: true schema: type: string - name: check_in_out in: query description: booking Type required: true schema: type: integer enum: - 1 - 2 - 254 responses: "200": description: successfully created booking content: application/json: schema: $ref: "#/components/schemas/Booking" "409": description: Same booking type as last booking get: tags: - booking summary: Create new Booking description: Creates a new booking with the supplied parameters operationId: gcreateBooking parameters: - in: header name: Authorization description: Predefined API Key to authorize access schema: type: string - in: query name: api_key description: Predefined API Key to authorize access required: false schema: type: string - name: card_uid in: query description: id of the RFID card scanned required: true schema: type: string - name: geraet_id in: query description: id of the RFID reader scanning the card required: true schema: type: string - name: check_in_out in: query description: booking Type required: true schema: type: integer enum: - 1 - 2 - 254 responses: "200": description: successfully created booking content: application/json: schema: $ref: "#/components/schemas/Booking" "401": description: none or wrong api key provided! "409": description: Same booking type as last booking /logout: get: tags: - booking summary: Logs out all logged in users description: With this call all actively logged in users (last booking today has check_in_out=1) will be logged out automaticly (check_in_out=254) operationId: autoLogout responses: "200": description: Succesful content: application/json: schema: type: array items: $ref: "#/components/schemas/User" components: schemas: BookingGrouped: type: object properties: day: type: string format: date bookings: type: array items: $ref: "#/components/schemas/Booking" Booking: type: object properties: counter_id: type: integer format: int64 example: 100 card_uid: type: string example: test_card geraet_id: type: string example: test_reader check_in_out: type: integer example: 1 enum: - 1 - 2 - 254 timestamp: type: string format: date-time example: "2024-09-05T08:51:12.670Z" xml: name: booking User: type: object properties: card_uid: type: string example: test_card name: type: string example: Mustermann vorname: type: string example: Max hauptbeschäftigungsort: type: integer format: int8 example: 1