ZahlungForderung
This commit is contained in:
@ -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
|
WHERE o.id = w.objekt AND
|
||||||
w.id = ?
|
w.id = ?
|
||||||
""", (id, ), "Wohnung")
|
""", (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 mariadb
|
||||||
import os
|
import os
|
||||||
|
|
||||||
pool = None
|
|
||||||
|
|
||||||
def createConnectionPool():
|
|
||||||
global pool
|
|
||||||
|
|
||||||
|
def getConnection():
|
||||||
try:
|
try:
|
||||||
user = os.environ["DB_USER"]
|
user = os.environ["DB_USER"]
|
||||||
password = os.environ["DB_PASS"]
|
password = os.environ["DB_PASS"]
|
||||||
host = os.environ["DB_HOST"]
|
host = os.environ["DB_HOST"]
|
||||||
database = os.environ["DB_NAME"]
|
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:
|
except KeyError as err:
|
||||||
raise Exception("Database configuration variable {} not available".format(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):
|
def getMany(stmt, params, objName):
|
||||||
|
dbh = None
|
||||||
|
cur = None
|
||||||
try:
|
try:
|
||||||
dbh = getConnection()
|
dbh = getConnection()
|
||||||
objs = []
|
objs = []
|
||||||
@ -39,14 +36,19 @@ def getMany(stmt, params, objName):
|
|||||||
objs.append(obj)
|
objs.append(obj)
|
||||||
return objs
|
return objs
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
|
print("Error in getMany({}): {}".format(objName, err))
|
||||||
return str(err), 500
|
return str(err), 500
|
||||||
finally:
|
finally:
|
||||||
print("return connection in getMany")
|
print("return connection in getMany({})".format(objName))
|
||||||
cur.close()
|
if cur:
|
||||||
dbh.close()
|
cur.close()
|
||||||
|
if dbh:
|
||||||
|
dbh.close()
|
||||||
|
|
||||||
|
|
||||||
def getOne(stmt, params, objName):
|
def getOne(stmt, params, objName):
|
||||||
|
dbh = None
|
||||||
|
cur = None
|
||||||
try:
|
try:
|
||||||
dbh = getConnection()
|
dbh = getConnection()
|
||||||
cur = dbh.cursor(dictionary=True)
|
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 "More than one {} by that id ({}, {})".format(objName, id, invObj), 500
|
||||||
return obj
|
return obj
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
|
print("Error in getOne({}): {}".format(objName, err))
|
||||||
return str(err), 500
|
return str(err), 500
|
||||||
finally:
|
finally:
|
||||||
print("return connection in getOne")
|
print("return connection in getOne({})".format(objName))
|
||||||
cur.close()
|
if cur:
|
||||||
dbh.close()
|
cur.close()
|
||||||
|
if dbh:
|
||||||
|
dbh.close()
|
||||||
|
|
@ -1,9 +1,5 @@
|
|||||||
import connexion
|
import connexion
|
||||||
from flask_cors import CORS
|
from flask_cors import CORS
|
||||||
from dbpool import createConnectionPool
|
|
||||||
|
|
||||||
# prepare database connections
|
|
||||||
createConnectionPool()
|
|
||||||
|
|
||||||
# instantiate the webservice
|
# instantiate the webservice
|
||||||
app = connexion.App(__name__)
|
app = connexion.App(__name__)
|
||||||
|
78
swagger.yaml
78
swagger.yaml
@ -55,6 +55,27 @@ paths:
|
|||||||
description: No Wohnung available
|
description: No Wohnung available
|
||||||
500:
|
500:
|
||||||
description: Some server error
|
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}:
|
/hv/wohnung/{id}:
|
||||||
get:
|
get:
|
||||||
tags: [ "Wohnungen" ]
|
tags: [ "Wohnungen" ]
|
||||||
@ -112,7 +133,7 @@ paths:
|
|||||||
/hv/forderung/{id}:
|
/hv/forderung/{id}:
|
||||||
get:
|
get:
|
||||||
tags: [ "Forderung" ]
|
tags: [ "Forderung" ]
|
||||||
operationId: Forderungen.get_forderung
|
operationId: ZahlungenForderungen.get_forderung
|
||||||
summary: Returns Forderung by id
|
summary: Returns Forderung by id
|
||||||
parameters:
|
parameters:
|
||||||
- name: id
|
- name: id
|
||||||
@ -131,7 +152,7 @@ paths:
|
|||||||
/hv/mieter/{mieter_id}/forderungen:
|
/hv/mieter/{mieter_id}/forderungen:
|
||||||
get:
|
get:
|
||||||
tags: [ "Mieter", "Forderung" ]
|
tags: [ "Mieter", "Forderung" ]
|
||||||
operationId: Forderungen.get_forderungen_by_mieter
|
operationId: ZahlungenForderungen.get_forderungen_by_mieter
|
||||||
summary: Returns all Forderungen for a given Mieter
|
summary: Returns all Forderungen for a given Mieter
|
||||||
parameters:
|
parameters:
|
||||||
- name: mieter_id
|
- name: mieter_id
|
||||||
@ -152,7 +173,7 @@ paths:
|
|||||||
/hv/zahlung/{id}:
|
/hv/zahlung/{id}:
|
||||||
get:
|
get:
|
||||||
tags: [ "Zahlung" ]
|
tags: [ "Zahlung" ]
|
||||||
operationId: Zahlungen.get_zahlung
|
operationId: ZahlungenForderungen.get_zahlung
|
||||||
summary: Returns Zahlung by id
|
summary: Returns Zahlung by id
|
||||||
parameters:
|
parameters:
|
||||||
- name: id
|
- name: id
|
||||||
@ -171,7 +192,7 @@ paths:
|
|||||||
/hv/mieter/{mieter_id}/zahlungen:
|
/hv/mieter/{mieter_id}/zahlungen:
|
||||||
get:
|
get:
|
||||||
tags: [ "Mieter", "Zahlung" ]
|
tags: [ "Mieter", "Zahlung" ]
|
||||||
operationId: Zahlungen.get_zahlungen_by_mieter
|
operationId: ZahlungenForderungen.get_zahlungen_by_mieter
|
||||||
summary: Returns all Zahlungen for a given Mieter
|
summary: Returns all Zahlungen for a given Mieter
|
||||||
parameters:
|
parameters:
|
||||||
- name: mieter_id
|
- name: mieter_id
|
||||||
@ -189,6 +210,32 @@ paths:
|
|||||||
description: No Zahlung available
|
description: No Zahlung available
|
||||||
500:
|
500:
|
||||||
description: Some server error
|
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:
|
definitions:
|
||||||
Objekt:
|
Objekt:
|
||||||
@ -261,6 +308,8 @@ definitions:
|
|||||||
type: number
|
type: number
|
||||||
kommentar:
|
kommentar:
|
||||||
type: string
|
type: string
|
||||||
|
ref_wohnung:
|
||||||
|
type: number
|
||||||
Zahlung:
|
Zahlung:
|
||||||
description: Zahlung type
|
description: Zahlung type
|
||||||
type: object
|
type: object
|
||||||
@ -277,4 +326,23 @@ definitions:
|
|||||||
type: number
|
type: number
|
||||||
kommentar:
|
kommentar:
|
||||||
type: string
|
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
|
||||||
|
Reference in New Issue
Block a user