hv-service/openapi.yaml

461 lines
11 KiB
YAML
Raw Permalink Normal View History

2021-01-24 23:24:20 +01:00
openapi: 3.0.0
2021-01-16 19:47:34 +01:00
info:
title: Hausverwaltung
version: "0.1"
2021-01-27 11:58:47 +01:00
security:
- jwt: []
2021-01-16 19:47:34 +01:00
paths:
/hv/objekte:
get:
tags: [ "Objekte" ]
operationId: Objekte.get_objekte
summary: Returns all Objekte
responses:
200:
description: Successful response.
2021-01-24 23:24:20 +01:00
content:
'application/json':
schema:
type: array
items:
$ref: '#/components/schemas/Objekt'
2021-01-16 19:47:34 +01:00
404:
description: No Objekte available
500:
description: Some server error
/hv/objekt/{id}:
get:
tags: [ "Objekte" ]
operationId: Objekte.get_objekt
summary: Returns Objekt by id
parameters:
- name: id
in: path
required: true
2021-01-24 23:24:20 +01:00
schema:
type: integer
2021-01-16 19:47:34 +01:00
responses:
200:
description: Successful response.
2021-01-24 23:24:20 +01:00
content:
'application/json':
schema:
$ref: '#/components/schemas/Objekt'
2021-01-16 19:47:34 +01:00
404:
description: Objekt not found
500:
description: Some server error
/hv/wohnungen:
get:
tags: [ "Wohnungen" ]
operationId: Wohnungen.get_wohnungen
summary: Returns all Wohnungen
responses:
200:
description: Successful response.
2021-01-24 23:24:20 +01:00
content:
'application/json':
schema:
type: array
items:
$ref: '#/components/schemas/Wohnung'
2021-01-16 19:47:34 +01:00
404:
description: No Wohnung available
500:
description: Some server error
2021-01-18 18:37:19 +01:00
/hv/objekt/{id}/wohnungen:
get:
tags: [ "Wohnungen", "Objekte" ]
operationId: Wohnungen.get_wohnungen_by_objekt
summary: Returns all Wohnungen for one Objekt
parameters:
- name: id
in: path
required: true
2021-01-24 23:24:20 +01:00
schema:
type: integer
2021-01-18 18:37:19 +01:00
responses:
200:
description: Successful response.
2021-01-24 23:24:20 +01:00
content:
'application/json':
schema:
type: array
items:
$ref: '#/components/schemas/Wohnung'
2021-01-18 18:37:19 +01:00
404:
description: No Wohnung available
500:
description: Some server error
2021-01-16 19:47:34 +01:00
/hv/wohnung/{id}:
get:
tags: [ "Wohnungen" ]
operationId: Wohnungen.get_wohnung
summary: Returns Wohnung by id
parameters:
- name: id
in: path
required: true
2021-01-24 23:24:20 +01:00
schema:
type: integer
2021-01-16 19:47:34 +01:00
responses:
200:
description: Successful response.
2021-01-24 23:24:20 +01:00
content:
'application/json':
schema:
$ref: '#/components/schemas/Wohnung'
2021-01-16 19:47:34 +01:00
404:
description: Wohnung not found
500:
description: Some server error
/hv/mieters:
get:
tags: [ "Mieter" ]
operationId: Mieter.get_mieters
summary: Returns all Mieter
responses:
200:
description: Successful response.
2021-01-24 23:24:20 +01:00
content:
'application/json':
schema:
type: array
items:
$ref: '#/components/schemas/Mieter'
404:
description: No Mieter available
500:
description: Some server error
2021-01-24 23:53:28 +01:00
security:
- jwt: ['secret']
/hv/mieter/{id}:
get:
tags: [ "Mieter" ]
operationId: Mieter.get_mieter
summary: Returns Mieter by id
parameters:
- name: id
in: path
required: true
2021-01-24 23:24:20 +01:00
schema:
type: integer
responses:
200:
description: Successful response.
2021-01-24 23:24:20 +01:00
content:
'application/json':
schema:
$ref: '#/components/schemas/Mieter'
404:
description: Mieter not found
500:
description: Some server error
2021-01-17 15:42:34 +01:00
/hv/forderung/{id}:
get:
tags: [ "Forderung" ]
2021-01-18 18:37:19 +01:00
operationId: ZahlungenForderungen.get_forderung
2021-01-17 15:42:34 +01:00
summary: Returns Forderung by id
parameters:
- name: id
in: path
required: true
2021-01-24 23:24:20 +01:00
schema:
type: integer
2021-01-17 15:42:34 +01:00
responses:
200:
description: Successful response.
2021-01-24 23:24:20 +01:00
content:
'application/json':
schema:
$ref: '#/components/schemas/Forderung'
2021-01-17 15:42:34 +01:00
404:
description: Forderung not found
500:
description: Some server error
/hv/mieter/{mieter_id}/forderungen:
get:
tags: [ "Mieter", "Forderung" ]
2021-01-18 18:37:19 +01:00
operationId: ZahlungenForderungen.get_forderungen_by_mieter
2021-01-17 15:42:34 +01:00
summary: Returns all Forderungen for a given Mieter
parameters:
- name: mieter_id
in: path
required: true
2021-01-24 23:24:20 +01:00
schema:
type: integer
2021-01-17 15:42:34 +01:00
responses:
200:
description: Successful response.
2021-01-24 23:24:20 +01:00
content:
'application/json':
schema:
type: array
items:
$ref: '#/components/schemas/Forderung'
2021-01-17 15:42:34 +01:00
404:
description: No Forderung available
500:
description: Some server error
/hv/zahlung/{id}:
get:
tags: [ "Zahlung" ]
2021-01-18 18:37:19 +01:00
operationId: ZahlungenForderungen.get_zahlung
2021-01-17 15:42:34 +01:00
summary: Returns Zahlung by id
parameters:
- name: id
in: path
required: true
2021-01-24 23:24:20 +01:00
schema:
type: integer
2021-01-17 15:42:34 +01:00
responses:
200:
description: Successful response.
2021-01-24 23:24:20 +01:00
content:
'application/json':
schema:
$ref: '#/components/schemas/Zahlung'
2021-01-17 15:42:34 +01:00
404:
description: Zahlung not found
500:
description: Some server error
/hv/mieter/{mieter_id}/zahlungen:
get:
tags: [ "Mieter", "Zahlung" ]
2021-01-18 18:37:19 +01:00
operationId: ZahlungenForderungen.get_zahlungen_by_mieter
2021-01-17 15:42:34 +01:00
summary: Returns all Zahlungen for a given Mieter
parameters:
- name: mieter_id
in: path
required: true
2021-01-24 23:24:20 +01:00
schema:
type: integer
2021-01-17 15:42:34 +01:00
responses:
200:
description: Successful response.
2021-01-24 23:24:20 +01:00
content:
'application/json':
schema:
type: array
items:
$ref: '#/components/schemas/Zahlung'
2021-01-17 15:42:34 +01:00
404:
description: No Zahlung available
500:
description: Some server error
2021-01-18 18:37:19 +01:00
/hv/mieter/{mieter_id}/zahlungforderung/{year}:
get:
tags: [ "Mieter", "Zahlung", "Forderung" ]
operationId: ZahlungenForderungen.get_zahlungforderung_by_mieter_and_year
summary: Returns all Zahlungen and Forderungen for a given Mieter and a given year
parameters:
- name: mieter_id
in: path
required: true
2021-01-24 23:24:20 +01:00
schema:
type: integer
2021-01-18 18:37:19 +01:00
- name: year
in: path
required: true
2021-01-24 23:24:20 +01:00
schema:
type: integer
2021-01-18 18:37:19 +01:00
responses:
200:
description: Successful response
2021-01-24 23:24:20 +01:00
content:
'application/json':
schema:
type: array
items:
$ref: '#/components/schemas/ZahlungForderung'
2021-01-18 18:37:19 +01:00
404:
description: No ZahlungForderung available
500:
description: Some server error
2021-01-19 19:44:25 +01:00
/hv/mieter/{mieter_id}/saldo/{year}:
get:
tags: [ "Mieter", "Zahlung" ]
operationId: ZahlungenForderungen.get_saldo_by_mieter_and_year
summary: Returns sum of Zahlungen for a given Mieter and a given year
parameters:
- name: mieter_id
in: path
required: true
2021-01-24 23:24:20 +01:00
schema:
type: integer
2021-01-19 19:44:25 +01:00
- name: year
in: path
required: true
2021-01-24 23:24:20 +01:00
schema:
type: integer
2021-01-19 19:44:25 +01:00
responses:
200:
description: Successful response
2021-01-24 23:24:20 +01:00
content:
'application/json':
schema:
$ref: '#/components/schemas/Saldo'
2021-01-19 19:44:25 +01:00
404:
description: Neither Forderungen nor Zahlungen available
500:
description: Some server error
2021-01-24 23:53:28 +01:00
/hv/zahlung:
post:
tags: [ "Zahlung" ]
operationId: ZahlungenForderungen.put_zahlung
summary: Inserts a new Zahlung
2021-01-27 11:58:47 +01:00
requestBody:
content:
'application/json':
schema:
$ref: '#/components/schemas/Zahlung'
2021-01-24 23:53:28 +01:00
responses:
202:
description: Zahlung successfully inserted
500:
description: Some server or database error
/secret:
get:
tags: [ "JWT" ]
summary: Return secret string
operationId: auth.get_secret
responses:
'200':
description: secret response
content:
'text/plain':
schema:
type: string
2021-01-18 18:37:19 +01:00
2021-01-16 19:47:34 +01:00
2021-01-24 23:24:20 +01:00
components:
2021-01-24 23:53:28 +01:00
securitySchemes:
jwt:
type: http
scheme: bearer
bearerFormat: JWT
x-bearerInfoFunc: auth.decode_token
2021-01-24 23:24:20 +01:00
schemas:
Objekt:
description: Objekt type
type: object
properties:
id:
type: integer
shortname:
type: string
flaeche:
type: number
Wohnung:
description: Wohnung type
type: object
properties:
id:
type: integer
objekt:
type: integer
shortname:
type: string
flaeche:
type: number
objekt_shortname:
type: string
Mieter:
description: Mieter type
type: object
properties:
id:
type: integer
objekt:
type: integer
wohnung:
type: integer
wohnung_shortname:
type: string
objekt_shortname:
type: string
anrede:
type: string
vorname:
type: string
nachname:
type: string
strasse:
type: string
plz:
type: string
ort:
type: string
telefon:
type: string
einzug:
type: string
auszug:
type: string
Forderung:
description: Forderung type
type: object
properties:
id:
type: integer
mieter:
type: integer
datum:
type: string
betrag:
type: number
kommentar:
type: string
ref_wohnung:
type: number
Zahlung:
description: Zahlung type
type: object
properties:
id:
type: integer
mieter:
type: integer
datum_ist:
type: string
datum_soll:
type: string
betrag:
type: number
kommentar:
type: string
ZahlungForderung:
description: ZahlungForderung type
type: object
properties:
zf_type:
type: string
id:
type: integer
datum_soll:
type: string
datum_ist:
type: string
betrag_zahlung:
type: number
betrag_forderung:
type: number
kommentar:
type: string
mieter:
type: number
Saldo:
description: Saldo type
type: object
properties:
forderungen:
type: number
zahlungen:
type: number
saldo:
type: number