ZahlungForderung
This commit is contained in:
parent
272d8a13e2
commit
47d918cdbf
@ -1,23 +0,0 @@
|
||||
from dbpool import getConnection, getOne, getMany
|
||||
|
||||
def get_forderungen_by_mieter(mieter_id):
|
||||
return getMany("""
|
||||
SELECT id,
|
||||
mieter as mieter_id,
|
||||
datum,
|
||||
betrag,
|
||||
kommentar
|
||||
FROM forderung
|
||||
WHERE mieter = ?
|
||||
""", [ mieter_id ], "Forderung")
|
||||
|
||||
def get_forderung(id):
|
||||
return getOne("""
|
||||
SELECT id,
|
||||
mieter as mieter_id
|
||||
datum,
|
||||
betrag,
|
||||
kommentar
|
||||
FROM forderung
|
||||
WHERE id = ?
|
||||
""", [ id ], "Forderung")
|
12
Wohnungen.py
12
Wohnungen.py
@ -22,3 +22,15 @@ SELECT w.id as id,
|
||||
WHERE o.id = w.objekt AND
|
||||
w.id = ?
|
||||
""", (id, ), "Wohnung")
|
||||
|
||||
def get_wohnungen_by_objekt(id):
|
||||
return getMany("""
|
||||
SELECT w.id as id,
|
||||
w.objekt as objekt_id,
|
||||
w.shortname as wohnung,
|
||||
w.flaeche as flaeche,
|
||||
o.shortname as objekt
|
||||
FROM wohnung w, objekt o
|
||||
WHERE o.id = w.objekt AND
|
||||
o.id = ?
|
||||
""", [ id ], "Wohnung")
|
||||
|
25
Zahlungen.py
25
Zahlungen.py
@ -1,25 +0,0 @@
|
||||
from dbpool import getConnection, getOne, getMany
|
||||
|
||||
def get_zahlungen_by_mieter(mieter_id):
|
||||
return getMany("""
|
||||
SELECT id,
|
||||
mieter as mieter_id,
|
||||
datum_ist,
|
||||
datum_soll
|
||||
betrag,
|
||||
kommentar
|
||||
FROM zahlung
|
||||
WHERE mieter = ?
|
||||
""", [ mieter_id ], "Zahlung")
|
||||
|
||||
def get_zahlung(id):
|
||||
return getOne("""
|
||||
SELECT id,
|
||||
mieter as mieter_id
|
||||
datum_ist,
|
||||
datum_soll
|
||||
betrag,
|
||||
kommentar
|
||||
FROM zahlung
|
||||
WHERE id = ?
|
||||
""", [ id ], "Zahlung")
|
68
ZahlungenForderungen.py
Normal file
68
ZahlungenForderungen.py
Normal file
@ -0,0 +1,68 @@
|
||||
from dbpool import getConnection, getOne, getMany
|
||||
|
||||
def get_zahlungen_by_mieter(mieter_id):
|
||||
return getMany("""
|
||||
SELECT id,
|
||||
mieter as mieter_id,
|
||||
datum_ist,
|
||||
datum_soll
|
||||
betrag,
|
||||
kommentar
|
||||
FROM zahlung
|
||||
WHERE mieter = ?
|
||||
""", [ mieter_id ], "Zahlung")
|
||||
|
||||
def get_zahlung(id):
|
||||
return getOne("""
|
||||
SELECT id,
|
||||
mieter as mieter_id
|
||||
datum_ist,
|
||||
datum_soll
|
||||
betrag,
|
||||
kommentar
|
||||
FROM zahlung
|
||||
WHERE id = ?
|
||||
""", [ id ], "Zahlung")
|
||||
|
||||
|
||||
def get_forderungen_by_mieter(mieter_id):
|
||||
return getMany("""
|
||||
SELECT id,
|
||||
mieter as mieter_id,
|
||||
datum,
|
||||
betrag,
|
||||
kommentar,
|
||||
ref_wohnung
|
||||
FROM forderung
|
||||
WHERE mieter = ?
|
||||
""", [ mieter_id ], "Forderung")
|
||||
|
||||
def get_forderung(id):
|
||||
return getOne("""
|
||||
SELECT id,
|
||||
mieter as mieter_id
|
||||
datum,
|
||||
betrag,
|
||||
kommentar,
|
||||
ref_wohnung
|
||||
FROM forderung
|
||||
WHERE id = ?
|
||||
""", [ id ], "Forderung")
|
||||
|
||||
def get_zahlungforderung_by_mieter_and_year(mieter_id, year):
|
||||
start_date = "{}-01-01".format(year)
|
||||
end_date = "{}-12-31".format(year)
|
||||
return getMany("""
|
||||
SELECT
|
||||
id,
|
||||
mieter,
|
||||
datum_soll,
|
||||
datum_ist,
|
||||
betrag_zahlung,
|
||||
betrag_forderung,
|
||||
zf_type,
|
||||
kommentar
|
||||
FROM zahlung_forderung
|
||||
WHERE mieter = ? AND
|
||||
datum_soll BETWEEN ? AND ?
|
||||
""", [mieter_id, start_date, end_date], "ZahlungForderung")
|
51
dbpool.py
51
dbpool.py
@ -1,35 +1,32 @@
|
||||
import mariadb
|
||||
import os
|
||||
|
||||
pool = None
|
||||
|
||||
def createConnectionPool():
|
||||
global pool
|
||||
|
||||
def getConnection():
|
||||
try:
|
||||
user = os.environ["DB_USER"]
|
||||
password = os.environ["DB_PASS"]
|
||||
host = os.environ["DB_HOST"]
|
||||
database = os.environ["DB_NAME"]
|
||||
|
||||
conn = mariadb.connect(
|
||||
user = user,
|
||||
password = password,
|
||||
host = host,
|
||||
database = database
|
||||
)
|
||||
|
||||
return conn
|
||||
except mariadb.Error as err:
|
||||
raise Exception("Error when connecting to database: {}".format(err))
|
||||
except KeyError as err:
|
||||
raise Exception("Database configuration variable {} not available".format(err))
|
||||
|
||||
pool = mariadb.ConnectionPool(
|
||||
user = user,
|
||||
password = password,
|
||||
host = host,
|
||||
database = database,
|
||||
pool_name = 'hv-wep-app',
|
||||
pool_size = 5,
|
||||
pool_reset_connection = True
|
||||
)
|
||||
|
||||
def getConnection():
|
||||
global pool
|
||||
return pool.get_connection()
|
||||
|
||||
|
||||
def getMany(stmt, params, objName):
|
||||
dbh = None
|
||||
cur = None
|
||||
try:
|
||||
dbh = getConnection()
|
||||
objs = []
|
||||
@ -39,14 +36,19 @@ def getMany(stmt, params, objName):
|
||||
objs.append(obj)
|
||||
return objs
|
||||
except Exception as err:
|
||||
print("Error in getMany({}): {}".format(objName, err))
|
||||
return str(err), 500
|
||||
finally:
|
||||
print("return connection in getMany")
|
||||
cur.close()
|
||||
dbh.close()
|
||||
print("return connection in getMany({})".format(objName))
|
||||
if cur:
|
||||
cur.close()
|
||||
if dbh:
|
||||
dbh.close()
|
||||
|
||||
|
||||
def getOne(stmt, params, objName):
|
||||
dbh = None
|
||||
cur = None
|
||||
try:
|
||||
dbh = getConnection()
|
||||
cur = dbh.cursor(dictionary=True)
|
||||
@ -59,9 +61,12 @@ def getOne(stmt, params, objName):
|
||||
return "More than one {} by that id ({}, {})".format(objName, id, invObj), 500
|
||||
return obj
|
||||
except Exception as err:
|
||||
print("Error in getOne({}): {}".format(objName, err))
|
||||
return str(err), 500
|
||||
finally:
|
||||
print("return connection in getOne")
|
||||
cur.close()
|
||||
dbh.close()
|
||||
print("return connection in getOne({})".format(objName))
|
||||
if cur:
|
||||
cur.close()
|
||||
if dbh:
|
||||
dbh.close()
|
||||
|
@ -1,9 +1,5 @@
|
||||
import connexion
|
||||
from flask_cors import CORS
|
||||
from dbpool import createConnectionPool
|
||||
|
||||
# prepare database connections
|
||||
createConnectionPool()
|
||||
|
||||
# instantiate the webservice
|
||||
app = connexion.App(__name__)
|
||||
|
78
swagger.yaml
78
swagger.yaml
@ -55,6 +55,27 @@ paths:
|
||||
description: No Wohnung available
|
||||
500:
|
||||
description: Some server error
|
||||
/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
|
||||
type: integer
|
||||
required: true
|
||||
responses:
|
||||
200:
|
||||
description: Successful response.
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/definitions/Wohnung'
|
||||
404:
|
||||
description: No Wohnung available
|
||||
500:
|
||||
description: Some server error
|
||||
/hv/wohnung/{id}:
|
||||
get:
|
||||
tags: [ "Wohnungen" ]
|
||||
@ -112,7 +133,7 @@ paths:
|
||||
/hv/forderung/{id}:
|
||||
get:
|
||||
tags: [ "Forderung" ]
|
||||
operationId: Forderungen.get_forderung
|
||||
operationId: ZahlungenForderungen.get_forderung
|
||||
summary: Returns Forderung by id
|
||||
parameters:
|
||||
- name: id
|
||||
@ -131,7 +152,7 @@ paths:
|
||||
/hv/mieter/{mieter_id}/forderungen:
|
||||
get:
|
||||
tags: [ "Mieter", "Forderung" ]
|
||||
operationId: Forderungen.get_forderungen_by_mieter
|
||||
operationId: ZahlungenForderungen.get_forderungen_by_mieter
|
||||
summary: Returns all Forderungen for a given Mieter
|
||||
parameters:
|
||||
- name: mieter_id
|
||||
@ -152,7 +173,7 @@ paths:
|
||||
/hv/zahlung/{id}:
|
||||
get:
|
||||
tags: [ "Zahlung" ]
|
||||
operationId: Zahlungen.get_zahlung
|
||||
operationId: ZahlungenForderungen.get_zahlung
|
||||
summary: Returns Zahlung by id
|
||||
parameters:
|
||||
- name: id
|
||||
@ -171,7 +192,7 @@ paths:
|
||||
/hv/mieter/{mieter_id}/zahlungen:
|
||||
get:
|
||||
tags: [ "Mieter", "Zahlung" ]
|
||||
operationId: Zahlungen.get_zahlungen_by_mieter
|
||||
operationId: ZahlungenForderungen.get_zahlungen_by_mieter
|
||||
summary: Returns all Zahlungen for a given Mieter
|
||||
parameters:
|
||||
- name: mieter_id
|
||||
@ -189,6 +210,32 @@ paths:
|
||||
description: No Zahlung available
|
||||
500:
|
||||
description: Some server error
|
||||
/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
|
||||
type: integer
|
||||
required: true
|
||||
- name: year
|
||||
in: path
|
||||
type: integer
|
||||
required: true
|
||||
responses:
|
||||
200:
|
||||
description: Successful response
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/definitions/ZahlungForderung'
|
||||
404:
|
||||
description: No ZahlungForderung available
|
||||
500:
|
||||
description: Some server error
|
||||
|
||||
|
||||
definitions:
|
||||
Objekt:
|
||||
@ -261,6 +308,8 @@ definitions:
|
||||
type: number
|
||||
kommentar:
|
||||
type: string
|
||||
ref_wohnung:
|
||||
type: number
|
||||
Zahlung:
|
||||
description: Zahlung type
|
||||
type: object
|
||||
@ -277,4 +326,23 @@ definitions:
|
||||
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
|
||||
|
Loading…
x
Reference in New Issue
Block a user