Files
arbeitszeitmessung/Docker/arbeitszeitmessung.yaml

222 lines
5.8 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
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