update methods and immutable attribute added

This commit is contained in:
2021-09-07 15:22:55 +02:00
parent 0afef9f3cd
commit 6470aa5358
10 changed files with 956 additions and 20 deletions

View File

@ -112,3 +112,11 @@ def dbInsert(user, token_info, params):
except Exception as e:
logger.error(f"Exception: {e}")
raise werkzeug.exceptions.InternalServerError
def dbUpdate(user, token_info, params):
logger.info("params: {}, token: {}".format(params, json.dumps(token_info)))
try:
return execDatabaseOperation(_opGetOne, params)
except Exception as e:
logger.error(f"Exception: {e}")
raise werkzeug.exceptions.InternalServerError

View File

@ -5,8 +5,9 @@
# -----------------------------------------
from db import dbGetMany, dbGetOne, dbInsert
from db import dbGetMany, dbGetOne, dbInsert, dbUpdate
from loguru import logger
import werkzeug
def get_accounts(user, token_info):
return dbGetMany(user, token_info, {
@ -57,6 +58,28 @@ SELECT
"params": (accountId, )
}
)
def update_account(user, token_info, accountId=None, **args):
try:
body = args["body"]
v_description = body["description"]
return dbUpdate(user, token_info, {
"statement": """
UPDATE account_t
SET
description = %s
WHERE id = %s
RETURNING *
""",
"params": [
v_description,
accountId
]
})
except KeyError as e:
logger.warning("update_account: parameter missing: {}".format(e))
raise werkzeug.exceptions.UnprocessableEntity("parameter missing: {}".format(e))
def get_tenants(user, token_info):
return dbGetMany(user, token_info, {
"statement": """
@ -173,6 +196,58 @@ SELECT
"params": (tenantId, )
}
)
def update_tenant(user, token_info, tenantId=None, **args):
try:
body = args["body"]
v_salutation = body["salutation"]
v_firstname = body["firstname"]
v_lastname = body["lastname"]
v_address1 = body["address1"]
v_address2 = body["address2"]
v_address3 = body["address3"]
v_zip = body["zip"]
v_city = body["city"]
v_phone1 = body["phone1"]
v_phone2 = body["phone2"]
v_iban = body["iban"]
return dbUpdate(user, token_info, {
"statement": """
UPDATE tenant_t
SET
salutation = %s
,firstname = %s
,lastname = %s
,address1 = %s
,address2 = %s
,address3 = %s
,zip = %s
,city = %s
,phone1 = %s
,phone2 = %s
,iban = %s
WHERE id = %s
RETURNING *
""",
"params": [
v_salutation,
v_firstname,
v_lastname,
v_address1,
v_address2,
v_address3,
v_zip,
v_city,
v_phone1,
v_phone2,
v_iban,
tenantId
]
})
except KeyError as e:
logger.warning("update_tenant: parameter missing: {}".format(e))
raise werkzeug.exceptions.UnprocessableEntity("parameter missing: {}".format(e))
def get_premises(user, token_info):
return dbGetMany(user, token_info, {
"statement": """
@ -240,6 +315,37 @@ SELECT
"params": (premiseId, )
}
)
def update_premise(user, token_info, premiseId=None, **args):
try:
body = args["body"]
v_description = body["description"]
v_street = body["street"]
v_zip = body["zip"]
v_city = body["city"]
return dbUpdate(user, token_info, {
"statement": """
UPDATE premise_t
SET
description = %s
,street = %s
,zip = %s
,city = %s
WHERE id = %s
RETURNING *
""",
"params": [
v_description,
v_street,
v_zip,
v_city,
premiseId
]
})
except KeyError as e:
logger.warning("update_premise: parameter missing: {}".format(e))
raise werkzeug.exceptions.UnprocessableEntity("parameter missing: {}".format(e))
def get_flats(user, token_info):
return dbGetMany(user, token_info, {
"statement": """
@ -308,6 +414,37 @@ SELECT
"params": (flatId, )
}
)
def update_flat(user, token_info, flatId=None, **args):
try:
body = args["body"]
v_description = body["description"]
v_premise = body["premise"]
v_area = body["area"]
v_flat_no = body["flat_no"]
return dbUpdate(user, token_info, {
"statement": """
UPDATE flat_t
SET
description = %s
,premise = %s
,area = %s
,flat_no = %s
WHERE id = %s
RETURNING *
""",
"params": [
v_description,
v_premise,
v_area,
v_flat_no,
flatId
]
})
except KeyError as e:
logger.warning("update_flat: parameter missing: {}".format(e))
raise werkzeug.exceptions.UnprocessableEntity("parameter missing: {}".format(e))
def get_overhead_advances(user, token_info):
return dbGetMany(user, token_info, {
"statement": """
@ -376,6 +513,31 @@ SELECT
"params": (overhead_advanceId, )
}
)
def update_overhead_advance(user, token_info, overhead_advanceId=None, **args):
try:
body = args["body"]
v_description = body["description"]
v_enddate = body["enddate"]
return dbUpdate(user, token_info, {
"statement": """
UPDATE overhead_advance_t
SET
description = %s
,enddate = %s
WHERE id = %s
RETURNING *
""",
"params": [
v_description,
v_enddate,
overhead_advanceId
]
})
except KeyError as e:
logger.warning("update_overhead_advance: parameter missing: {}".format(e))
raise werkzeug.exceptions.UnprocessableEntity("parameter missing: {}".format(e))
def get_overhead_advance_flat_mappings(user, token_info):
return dbGetMany(user, token_info, {
"statement": """
@ -432,6 +594,8 @@ SELECT
"params": (overhead_advance_flat_mappingId, )
}
)
def get_parkings(user, token_info):
return dbGetMany(user, token_info, {
"statement": """
@ -488,6 +652,31 @@ SELECT
"params": (parkingId, )
}
)
def update_parking(user, token_info, parkingId=None, **args):
try:
body = args["body"]
v_description = body["description"]
v_premise = body["premise"]
return dbUpdate(user, token_info, {
"statement": """
UPDATE parking_t
SET
description = %s
,premise = %s
WHERE id = %s
RETURNING *
""",
"params": [
v_description,
v_premise,
parkingId
]
})
except KeyError as e:
logger.warning("update_parking: parameter missing: {}".format(e))
raise werkzeug.exceptions.UnprocessableEntity("parameter missing: {}".format(e))
def get_commercial_premises(user, token_info):
return dbGetMany(user, token_info, {
"statement": """
@ -544,6 +733,31 @@ SELECT
"params": (commercial_premiseId, )
}
)
def update_commercial_premise(user, token_info, commercial_premiseId=None, **args):
try:
body = args["body"]
v_description = body["description"]
v_premise = body["premise"]
return dbUpdate(user, token_info, {
"statement": """
UPDATE commercial_premise_t
SET
description = %s
,premise = %s
WHERE id = %s
RETURNING *
""",
"params": [
v_description,
v_premise,
commercial_premiseId
]
})
except KeyError as e:
logger.warning("update_commercial_premise: parameter missing: {}".format(e))
raise werkzeug.exceptions.UnprocessableEntity("parameter missing: {}".format(e))
def get_tenancys(user, token_info):
return dbGetMany(user, token_info, {
"statement": """
@ -630,6 +844,31 @@ SELECT
"params": (tenancyId, )
}
)
def update_tenancy(user, token_info, tenancyId=None, **args):
try:
body = args["body"]
v_description = body["description"]
v_enddate = body["enddate"]
return dbUpdate(user, token_info, {
"statement": """
UPDATE tenancy_t
SET
description = %s
,enddate = %s
WHERE id = %s
RETURNING *
""",
"params": [
v_description,
v_enddate,
tenancyId
]
})
except KeyError as e:
logger.warning("update_tenancy: parameter missing: {}".format(e))
raise werkzeug.exceptions.UnprocessableEntity("parameter missing: {}".format(e))
def get_fees(user, token_info):
return dbGetMany(user, token_info, {
"statement": """
@ -704,6 +943,31 @@ SELECT
"params": (feeId, )
}
)
def update_fee(user, token_info, feeId=None, **args):
try:
body = args["body"]
v_description = body["description"]
v_enddate = body["enddate"]
return dbUpdate(user, token_info, {
"statement": """
UPDATE fee_t
SET
description = %s
,enddate = %s
WHERE id = %s
RETURNING *
""",
"params": [
v_description,
v_enddate,
feeId
]
})
except KeyError as e:
logger.warning("update_fee: parameter missing: {}".format(e))
raise werkzeug.exceptions.UnprocessableEntity("parameter missing: {}".format(e))
def get_tenancy_fee_mappings(user, token_info):
return dbGetMany(user, token_info, {
"statement": """
@ -757,6 +1021,8 @@ SELECT
"params": (tenancy_fee_mappingId, )
}
)
def get_account_entrys(user, token_info):
return dbGetMany(user, token_info, {
"statement": """
@ -822,3 +1088,5 @@ SELECT
"params": (account_entryId, )
}
)

View File

@ -1,7 +1,8 @@
$GENERATED_PYTHON_COMMENT
from db import dbGetMany, dbGetOne, dbInsert
from db import dbGetMany, dbGetOne, dbInsert, dbUpdate
from loguru import logger
import werkzeug
#for $table in $tables
def get_${table.name}s(user, token_info):
@ -77,4 +78,42 @@ SELECT
"params": (${table.name}Id, )
}
)
#if (('immutable' not in $table) or (not $table.immutable))
def update_${table.name}(user, token_info, ${table.name}Id=None, **args):
try:
body = args["body"]
#for $column in $table.columns
#if (('immutable' not in $column) or (not $column.immutable))
v_$column.name = body["$column.name"]
#end if
#end for
return dbUpdate(user, token_info, {
"statement": """
UPDATE ${table.name}_t
SET
#set $sep=""
#for $column in $table.columns
#if (('immutable' not in $column) or (not $column.immutable))
$sep$column.name = %s
#end if
#set $sep=","
#end for
WHERE id = %s
RETURNING *
""",
"params": [
#for $column in $table.columns
#if (('immutable' not in $column) or (not $column.immutable))
v_${column.name},
#end if
#end for
${table.name}Id
]
})
except KeyError as e:
logger.warning("update_${table.name}: parameter missing: {}".format(e))
raise werkzeug.exceptions.UnprocessableEntity("parameter missing: {}".format(e))
#end if
#end for

View File

@ -56,6 +56,27 @@ paths:
$ref: '#/components/schemas/account'
security:
- jwt: ['secret']
put:
tags: [ "account" ]
summary: Update a account
operationId: methods.update_account
requestBody:
description: account
content:
application/json:
schema:
$ref: '#/components/schemas/account'
responses:
'200':
description: account successfully inserted
content:
'application/json':
schema:
type: array
items:
$ref: '#/components/schemas/account'
security:
- jwt: ['secret']
/v1/accounts/{accountId}:
get:
tags: [ "account" ]
@ -78,6 +99,33 @@ paths:
$ref: '#/components/schemas/account'
security:
- jwt: ['secret']
put:
tags: [ "account" ]
summary: Update a account
operationId: methods.update_account
parameters:
- name: accountId
in: path
required: true
schema:
type: integer
requestBody:
description: account
content:
application/json:
schema:
$ref: '#/components/schemas/account'
responses:
'200':
description: account successfully inserted
content:
'application/json':
schema:
type: array
items:
$ref: '#/components/schemas/account'
security:
- jwt: ['secret']
/v1/tenants:
get:
tags: [ "tenant" ]
@ -115,6 +163,27 @@ paths:
$ref: '#/components/schemas/tenant'
security:
- jwt: ['secret']
put:
tags: [ "tenant" ]
summary: Update a tenant
operationId: methods.update_tenant
requestBody:
description: tenant
content:
application/json:
schema:
$ref: '#/components/schemas/tenant'
responses:
'200':
description: tenant successfully inserted
content:
'application/json':
schema:
type: array
items:
$ref: '#/components/schemas/tenant'
security:
- jwt: ['secret']
/v1/tenants/{tenantId}:
get:
tags: [ "tenant" ]
@ -137,6 +206,33 @@ paths:
$ref: '#/components/schemas/tenant'
security:
- jwt: ['secret']
put:
tags: [ "tenant" ]
summary: Update a tenant
operationId: methods.update_tenant
parameters:
- name: tenantId
in: path
required: true
schema:
type: integer
requestBody:
description: tenant
content:
application/json:
schema:
$ref: '#/components/schemas/tenant'
responses:
'200':
description: tenant successfully inserted
content:
'application/json':
schema:
type: array
items:
$ref: '#/components/schemas/tenant'
security:
- jwt: ['secret']
/v1/premises:
get:
tags: [ "premise" ]
@ -174,6 +270,27 @@ paths:
$ref: '#/components/schemas/premise'
security:
- jwt: ['secret']
put:
tags: [ "premise" ]
summary: Update a premise
operationId: methods.update_premise
requestBody:
description: premise
content:
application/json:
schema:
$ref: '#/components/schemas/premise'
responses:
'200':
description: premise successfully inserted
content:
'application/json':
schema:
type: array
items:
$ref: '#/components/schemas/premise'
security:
- jwt: ['secret']
/v1/premises/{premiseId}:
get:
tags: [ "premise" ]
@ -196,6 +313,33 @@ paths:
$ref: '#/components/schemas/premise'
security:
- jwt: ['secret']
put:
tags: [ "premise" ]
summary: Update a premise
operationId: methods.update_premise
parameters:
- name: premiseId
in: path
required: true
schema:
type: integer
requestBody:
description: premise
content:
application/json:
schema:
$ref: '#/components/schemas/premise'
responses:
'200':
description: premise successfully inserted
content:
'application/json':
schema:
type: array
items:
$ref: '#/components/schemas/premise'
security:
- jwt: ['secret']
/v1/flats:
get:
tags: [ "flat" ]
@ -233,6 +377,27 @@ paths:
$ref: '#/components/schemas/flat'
security:
- jwt: ['secret']
put:
tags: [ "flat" ]
summary: Update a flat
operationId: methods.update_flat
requestBody:
description: flat
content:
application/json:
schema:
$ref: '#/components/schemas/flat'
responses:
'200':
description: flat successfully inserted
content:
'application/json':
schema:
type: array
items:
$ref: '#/components/schemas/flat'
security:
- jwt: ['secret']
/v1/flats/{flatId}:
get:
tags: [ "flat" ]
@ -255,6 +420,33 @@ paths:
$ref: '#/components/schemas/flat'
security:
- jwt: ['secret']
put:
tags: [ "flat" ]
summary: Update a flat
operationId: methods.update_flat
parameters:
- name: flatId
in: path
required: true
schema:
type: integer
requestBody:
description: flat
content:
application/json:
schema:
$ref: '#/components/schemas/flat'
responses:
'200':
description: flat successfully inserted
content:
'application/json':
schema:
type: array
items:
$ref: '#/components/schemas/flat'
security:
- jwt: ['secret']
/v1/overhead_advances:
get:
tags: [ "overhead_advance" ]
@ -292,6 +484,27 @@ paths:
$ref: '#/components/schemas/overhead_advance'
security:
- jwt: ['secret']
put:
tags: [ "overhead_advance" ]
summary: Update a overhead_advance
operationId: methods.update_overhead_advance
requestBody:
description: overhead_advance
content:
application/json:
schema:
$ref: '#/components/schemas/overhead_advance'
responses:
'200':
description: overhead_advance successfully inserted
content:
'application/json':
schema:
type: array
items:
$ref: '#/components/schemas/overhead_advance'
security:
- jwt: ['secret']
/v1/overhead_advances/{overhead_advanceId}:
get:
tags: [ "overhead_advance" ]
@ -314,6 +527,33 @@ paths:
$ref: '#/components/schemas/overhead_advance'
security:
- jwt: ['secret']
put:
tags: [ "overhead_advance" ]
summary: Update a overhead_advance
operationId: methods.update_overhead_advance
parameters:
- name: overhead_advanceId
in: path
required: true
schema:
type: integer
requestBody:
description: overhead_advance
content:
application/json:
schema:
$ref: '#/components/schemas/overhead_advance'
responses:
'200':
description: overhead_advance successfully inserted
content:
'application/json':
schema:
type: array
items:
$ref: '#/components/schemas/overhead_advance'
security:
- jwt: ['secret']
/v1/overhead_advance_flat_mappings:
get:
tags: [ "overhead_advance_flat_mapping" ]
@ -351,6 +591,27 @@ paths:
$ref: '#/components/schemas/overhead_advance_flat_mapping'
security:
- jwt: ['secret']
put:
tags: [ "overhead_advance_flat_mapping" ]
summary: Update a overhead_advance_flat_mapping
operationId: methods.update_overhead_advance_flat_mapping
requestBody:
description: overhead_advance_flat_mapping
content:
application/json:
schema:
$ref: '#/components/schemas/overhead_advance_flat_mapping'
responses:
'200':
description: overhead_advance_flat_mapping successfully inserted
content:
'application/json':
schema:
type: array
items:
$ref: '#/components/schemas/overhead_advance_flat_mapping'
security:
- jwt: ['secret']
/v1/overhead_advance_flat_mappings/{overhead_advance_flat_mappingId}:
get:
tags: [ "overhead_advance_flat_mapping" ]
@ -410,6 +671,27 @@ paths:
$ref: '#/components/schemas/parking'
security:
- jwt: ['secret']
put:
tags: [ "parking" ]
summary: Update a parking
operationId: methods.update_parking
requestBody:
description: parking
content:
application/json:
schema:
$ref: '#/components/schemas/parking'
responses:
'200':
description: parking successfully inserted
content:
'application/json':
schema:
type: array
items:
$ref: '#/components/schemas/parking'
security:
- jwt: ['secret']
/v1/parkings/{parkingId}:
get:
tags: [ "parking" ]
@ -432,6 +714,33 @@ paths:
$ref: '#/components/schemas/parking'
security:
- jwt: ['secret']
put:
tags: [ "parking" ]
summary: Update a parking
operationId: methods.update_parking
parameters:
- name: parkingId
in: path
required: true
schema:
type: integer
requestBody:
description: parking
content:
application/json:
schema:
$ref: '#/components/schemas/parking'
responses:
'200':
description: parking successfully inserted
content:
'application/json':
schema:
type: array
items:
$ref: '#/components/schemas/parking'
security:
- jwt: ['secret']
/v1/commercial_premises:
get:
tags: [ "commercial_premise" ]
@ -469,6 +778,27 @@ paths:
$ref: '#/components/schemas/commercial_premise'
security:
- jwt: ['secret']
put:
tags: [ "commercial_premise" ]
summary: Update a commercial_premise
operationId: methods.update_commercial_premise
requestBody:
description: commercial_premise
content:
application/json:
schema:
$ref: '#/components/schemas/commercial_premise'
responses:
'200':
description: commercial_premise successfully inserted
content:
'application/json':
schema:
type: array
items:
$ref: '#/components/schemas/commercial_premise'
security:
- jwt: ['secret']
/v1/commercial_premises/{commercial_premiseId}:
get:
tags: [ "commercial_premise" ]
@ -491,6 +821,33 @@ paths:
$ref: '#/components/schemas/commercial_premise'
security:
- jwt: ['secret']
put:
tags: [ "commercial_premise" ]
summary: Update a commercial_premise
operationId: methods.update_commercial_premise
parameters:
- name: commercial_premiseId
in: path
required: true
schema:
type: integer
requestBody:
description: commercial_premise
content:
application/json:
schema:
$ref: '#/components/schemas/commercial_premise'
responses:
'200':
description: commercial_premise successfully inserted
content:
'application/json':
schema:
type: array
items:
$ref: '#/components/schemas/commercial_premise'
security:
- jwt: ['secret']
/v1/tenancys:
get:
tags: [ "tenancy" ]
@ -528,6 +885,27 @@ paths:
$ref: '#/components/schemas/tenancy'
security:
- jwt: ['secret']
put:
tags: [ "tenancy" ]
summary: Update a tenancy
operationId: methods.update_tenancy
requestBody:
description: tenancy
content:
application/json:
schema:
$ref: '#/components/schemas/tenancy'
responses:
'200':
description: tenancy successfully inserted
content:
'application/json':
schema:
type: array
items:
$ref: '#/components/schemas/tenancy'
security:
- jwt: ['secret']
/v1/tenancys/{tenancyId}:
get:
tags: [ "tenancy" ]
@ -550,6 +928,33 @@ paths:
$ref: '#/components/schemas/tenancy'
security:
- jwt: ['secret']
put:
tags: [ "tenancy" ]
summary: Update a tenancy
operationId: methods.update_tenancy
parameters:
- name: tenancyId
in: path
required: true
schema:
type: integer
requestBody:
description: tenancy
content:
application/json:
schema:
$ref: '#/components/schemas/tenancy'
responses:
'200':
description: tenancy successfully inserted
content:
'application/json':
schema:
type: array
items:
$ref: '#/components/schemas/tenancy'
security:
- jwt: ['secret']
/v1/fees:
get:
tags: [ "fee" ]
@ -587,6 +992,27 @@ paths:
$ref: '#/components/schemas/fee'
security:
- jwt: ['secret']
put:
tags: [ "fee" ]
summary: Update a fee
operationId: methods.update_fee
requestBody:
description: fee
content:
application/json:
schema:
$ref: '#/components/schemas/fee'
responses:
'200':
description: fee successfully inserted
content:
'application/json':
schema:
type: array
items:
$ref: '#/components/schemas/fee'
security:
- jwt: ['secret']
/v1/fees/{feeId}:
get:
tags: [ "fee" ]
@ -609,6 +1035,33 @@ paths:
$ref: '#/components/schemas/fee'
security:
- jwt: ['secret']
put:
tags: [ "fee" ]
summary: Update a fee
operationId: methods.update_fee
parameters:
- name: feeId
in: path
required: true
schema:
type: integer
requestBody:
description: fee
content:
application/json:
schema:
$ref: '#/components/schemas/fee'
responses:
'200':
description: fee successfully inserted
content:
'application/json':
schema:
type: array
items:
$ref: '#/components/schemas/fee'
security:
- jwt: ['secret']
/v1/tenancy_fee_mappings:
get:
tags: [ "tenancy_fee_mapping" ]
@ -646,6 +1099,27 @@ paths:
$ref: '#/components/schemas/tenancy_fee_mapping'
security:
- jwt: ['secret']
put:
tags: [ "tenancy_fee_mapping" ]
summary: Update a tenancy_fee_mapping
operationId: methods.update_tenancy_fee_mapping
requestBody:
description: tenancy_fee_mapping
content:
application/json:
schema:
$ref: '#/components/schemas/tenancy_fee_mapping'
responses:
'200':
description: tenancy_fee_mapping successfully inserted
content:
'application/json':
schema:
type: array
items:
$ref: '#/components/schemas/tenancy_fee_mapping'
security:
- jwt: ['secret']
/v1/tenancy_fee_mappings/{tenancy_fee_mappingId}:
get:
tags: [ "tenancy_fee_mapping" ]
@ -705,6 +1179,27 @@ paths:
$ref: '#/components/schemas/account_entry'
security:
- jwt: ['secret']
put:
tags: [ "account_entry" ]
summary: Update a account_entry
operationId: methods.update_account_entry
requestBody:
description: account_entry
content:
application/json:
schema:
$ref: '#/components/schemas/account_entry'
responses:
'200':
description: account_entry successfully inserted
content:
'application/json':
schema:
type: array
items:
$ref: '#/components/schemas/account_entry'
security:
- jwt: ['secret']
/v1/account_entrys/{account_entryId}:
get:
tags: [ "account_entry" ]

View File

@ -52,6 +52,27 @@ paths:
\$ref: '#/components/schemas/$table.name'
security:
- jwt: ['secret']
put:
tags: [ "$table.name" ]
summary: Update a ${table.name}
operationId: methods.update_${table.name}
requestBody:
description: $table.name
content:
application/json:
schema:
\$ref: '#/components/schemas/$table.name'
responses:
'200':
description: ${table.name} successfully inserted
content:
'application/json':
schema:
type: array
items:
\$ref: '#/components/schemas/$table.name'
security:
- jwt: ['secret']
/v1/${table.name}s/{${table.name}Id}:
get:
tags: [ "$table.name" ]
@ -74,6 +95,35 @@ paths:
\$ref: '#/components/schemas/$table.name'
security:
- jwt: ['secret']
#if (('immutable' not in $table) or (not $table.immutable))
put:
tags: [ "$table.name" ]
summary: Update a ${table.name}
operationId: methods.update_${table.name}
parameters:
- name: ${table.name}Id
in: path
required: true
schema:
type: integer
requestBody:
description: $table.name
content:
application/json:
schema:
\$ref: '#/components/schemas/$table.name'
responses:
'200':
description: ${table.name} successfully inserted
content:
'application/json':
schema:
type: array
items:
\$ref: '#/components/schemas/$table.name'
security:
- jwt: ['secret']
#end if
#end for
components: