diff --git a/api/additional_endpoints.yaml b/api/additional_endpoints.yaml index 123d1f8..e02420d 100644 --- a/api/additional_endpoints.yaml +++ b/api/additional_endpoints.yaml @@ -3,27 +3,3 @@ # Use plain openapi/yaml syntax, no Cheetah # escaping # ------------------------------------------------------------------- - - - /v1/overhead_advance_flat_mappings/flat/{flatId}: - get: - tags: [ "overhead_advance_flat_mapping", "flat" ] - summary: Returns all overhead advance mappings for a given flat - operationId: additional_methods.get_overhead_advance_flat_mapping_by_flat - parameters: - - name: flatId - in: path - required: true - schema: - type: integer - responses: - '200': - description: $table.name response - content: - 'application/json': - schema: - type: array - items: - $ref: '#/components/schemas/overhead_advance_flat_mapping' - security: - - jwt: ['secret'] diff --git a/api/additional_methods.py b/api/additional_methods.py index 133d3ac..e69de29 100644 --- a/api/additional_methods.py +++ b/api/additional_methods.py @@ -1,19 +0,0 @@ -from db import dbGetMany, dbGetOne, dbInsert, dbUpdate -from loguru import logger -import werkzeug - - -def get_overhead_advance_flat_mapping_by_flat(user, token_info, flatId=None): - return dbGetOne(user, token_info, { - "statement": """ -SELECT - id - ,overhead_advance - ,flat - FROM overhead_advance_flat_mapping_t - WHERE flat = %s - """, - "params": (flatId, ) - } - ) - diff --git a/api/methods.py b/api/methods.py index 0ddfb72..1164f8d 100644 --- a/api/methods.py +++ b/api/methods.py @@ -80,6 +80,7 @@ UPDATE account_t 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": """ @@ -248,6 +249,31 @@ UPDATE tenant_t logger.warning("update_tenant: parameter missing: {}".format(e)) raise werkzeug.exceptions.UnprocessableEntity("parameter missing: {}".format(e)) + +def get_tenant_by_account(user, token_info, accountId=None): + return dbGetOne(user, token_info, { + "statement": """ +SELECT + id + ,salutation + ,firstname + ,lastname + ,address1 + ,address2 + ,address3 + ,zip + ,city + ,phone1 + ,phone2 + ,iban + ,account + FROM tenant_t + WHERE account = %s + """, + "params": (accountId, ) + } + ) + def get_premises(user, token_info): return dbGetMany(user, token_info, { "statement": """ @@ -346,6 +372,7 @@ UPDATE premise_t 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": """ @@ -445,6 +472,23 @@ UPDATE flat_t logger.warning("update_flat: parameter missing: {}".format(e)) raise werkzeug.exceptions.UnprocessableEntity("parameter missing: {}".format(e)) + +def get_flat_by_premise(user, token_info, premiseId=None): + return dbGetOne(user, token_info, { + "statement": """ +SELECT + id + ,description + ,premise + ,area + ,flat_no + FROM flat_t + WHERE premise = %s + """, + "params": (premiseId, ) + } + ) + def get_overhead_advances(user, token_info): return dbGetMany(user, token_info, { "statement": """ @@ -538,6 +582,7 @@ UPDATE overhead_advance_t 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": """ @@ -596,6 +641,35 @@ SELECT ) + +def get_overhead_advance_flat_mapping_by_overhead_advance(user, token_info, overhead_advanceId=None): + return dbGetOne(user, token_info, { + "statement": """ +SELECT + id + ,overhead_advance + ,flat + FROM overhead_advance_flat_mapping_t + WHERE overhead_advance = %s + """, + "params": (overhead_advanceId, ) + } + ) + +def get_overhead_advance_flat_mapping_by_flat(user, token_info, flatId=None): + return dbGetOne(user, token_info, { + "statement": """ +SELECT + id + ,overhead_advance + ,flat + FROM overhead_advance_flat_mapping_t + WHERE flat = %s + """, + "params": (flatId, ) + } + ) + def get_parkings(user, token_info): return dbGetMany(user, token_info, { "statement": """ @@ -677,6 +751,21 @@ UPDATE parking_t logger.warning("update_parking: parameter missing: {}".format(e)) raise werkzeug.exceptions.UnprocessableEntity("parameter missing: {}".format(e)) + +def get_parking_by_premise(user, token_info, premiseId=None): + return dbGetOne(user, token_info, { + "statement": """ +SELECT + id + ,description + ,premise + FROM parking_t + WHERE premise = %s + """, + "params": (premiseId, ) + } + ) + def get_commercial_premises(user, token_info): return dbGetMany(user, token_info, { "statement": """ @@ -758,6 +847,21 @@ UPDATE commercial_premise_t logger.warning("update_commercial_premise: parameter missing: {}".format(e)) raise werkzeug.exceptions.UnprocessableEntity("parameter missing: {}".format(e)) + +def get_commercial_premise_by_premise(user, token_info, premiseId=None): + return dbGetOne(user, token_info, { + "statement": """ +SELECT + id + ,description + ,premise + FROM commercial_premise_t + WHERE premise = %s + """, + "params": (premiseId, ) + } + ) + def get_tenancys(user, token_info): return dbGetMany(user, token_info, { "statement": """ @@ -869,6 +973,83 @@ UPDATE tenancy_t logger.warning("update_tenancy: parameter missing: {}".format(e)) raise werkzeug.exceptions.UnprocessableEntity("parameter missing: {}".format(e)) + +def get_tenancy_by_tenant(user, token_info, tenantId=None): + return dbGetOne(user, token_info, { + "statement": """ +SELECT + id + ,description + ,tenant + ,flat + ,parking + ,commercial_premise + ,startdate + ,enddate + FROM tenancy_t + WHERE tenant = %s + """, + "params": (tenantId, ) + } + ) + +def get_tenancy_by_flat(user, token_info, flatId=None): + return dbGetOne(user, token_info, { + "statement": """ +SELECT + id + ,description + ,tenant + ,flat + ,parking + ,commercial_premise + ,startdate + ,enddate + FROM tenancy_t + WHERE flat = %s + """, + "params": (flatId, ) + } + ) + +def get_tenancy_by_parking(user, token_info, parkingId=None): + return dbGetOne(user, token_info, { + "statement": """ +SELECT + id + ,description + ,tenant + ,flat + ,parking + ,commercial_premise + ,startdate + ,enddate + FROM tenancy_t + WHERE parking = %s + """, + "params": (parkingId, ) + } + ) + +def get_tenancy_by_commercial_premise(user, token_info, commercial_premiseId=None): + return dbGetOne(user, token_info, { + "statement": """ +SELECT + id + ,description + ,tenant + ,flat + ,parking + ,commercial_premise + ,startdate + ,enddate + FROM tenancy_t + WHERE commercial_premise = %s + """, + "params": (commercial_premiseId, ) + } + ) + def get_fees(user, token_info): return dbGetMany(user, token_info, { "statement": """ @@ -968,6 +1149,7 @@ UPDATE fee_t 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": """ @@ -1023,6 +1205,35 @@ SELECT ) + +def get_tenancy_fee_mapping_by_tenancy(user, token_info, tenancyId=None): + return dbGetOne(user, token_info, { + "statement": """ +SELECT + id + ,tenancy + ,fee + FROM tenancy_fee_mapping_t + WHERE tenancy = %s + """, + "params": (tenancyId, ) + } + ) + +def get_tenancy_fee_mapping_by_fee(user, token_info, feeId=None): + return dbGetOne(user, token_info, { + "statement": """ +SELECT + id + ,tenancy + ,fee + FROM tenancy_fee_mapping_t + WHERE fee = %s + """, + "params": (feeId, ) + } + ) + def get_account_entrys(user, token_info): return dbGetMany(user, token_info, { "statement": """ @@ -1090,3 +1301,20 @@ SELECT ) + +def get_account_entry_by_account(user, token_info, accountId=None): + return dbGetOne(user, token_info, { + "statement": """ +SELECT + id + ,description + ,account + ,created_at + ,amount + FROM account_entry_t + WHERE account = %s + """, + "params": (accountId, ) + } + ) + diff --git a/api/methods.py.tmpl b/api/methods.py.tmpl index 07acb70..519633b 100644 --- a/api/methods.py.tmpl +++ b/api/methods.py.tmpl @@ -116,4 +116,24 @@ UPDATE ${table.name}_t raise werkzeug.exceptions.UnprocessableEntity("parameter missing: {}".format(e)) #end if +#for $column in $table.columns +#if (('foreignkey' in $column) and $column.foreignkey) + +def get_${table.name}_by_${column.name}(user, token_info, ${column.name}Id=None): + return dbGetOne(user, token_info, { + "statement": """ +SELECT + id +#for $innerColumn in $table.columns + ,$innerColumn.name +#end for + FROM ${table.name}_t + WHERE ${column.name} = %s + """, + "params": (${column.name}Id, ) + } + ) +#end if +#end for + #end for diff --git a/api/openapi.yaml b/api/openapi.yaml index cffd251..953971f 100644 --- a/api/openapi.yaml +++ b/api/openapi.yaml @@ -191,6 +191,28 @@ paths: $ref: '#/components/schemas/tenant' security: - jwt: ['secret'] + /v1/tenants/account/{accountId}: + get: + tags: [ "tenant", "account" ] + summary: Return tenant by $account + operationId: methods.get_tenant_by_account + parameters: + - name: accountId + in: path + required: true + schema: + type: integer + responses: + '200': + description: tenant response + content: + 'application/json': + schema: + type: array + items: + $ref: '#/components/schemas/tenant' + security: + - jwt: ['secret'] /v1/premises: get: tags: [ "premise" ] @@ -363,6 +385,28 @@ paths: $ref: '#/components/schemas/flat' security: - jwt: ['secret'] + /v1/flats/premise/{premiseId}: + get: + tags: [ "flat", "premise" ] + summary: Return flat by $premise + operationId: methods.get_flat_by_premise + parameters: + - name: premiseId + in: path + required: true + schema: + type: integer + responses: + '200': + description: flat response + content: + 'application/json': + schema: + type: array + items: + $ref: '#/components/schemas/flat' + security: + - jwt: ['secret'] /v1/overhead_advances: get: tags: [ "overhead_advance" ] @@ -508,6 +552,50 @@ paths: $ref: '#/components/schemas/overhead_advance_flat_mapping' security: - jwt: ['secret'] + /v1/overhead_advance_flat_mappings/overhead_advance/{overhead_advanceId}: + get: + tags: [ "overhead_advance_flat_mapping", "overhead_advance" ] + summary: Return overhead_advance_flat_mapping by $overhead_advance + operationId: methods.get_overhead_advance_flat_mapping_by_overhead_advance + parameters: + - name: overhead_advanceId + in: path + required: true + schema: + type: integer + responses: + '200': + description: overhead_advance_flat_mapping response + content: + 'application/json': + schema: + type: array + items: + $ref: '#/components/schemas/overhead_advance_flat_mapping' + security: + - jwt: ['secret'] + /v1/overhead_advance_flat_mappings/flat/{flatId}: + get: + tags: [ "overhead_advance_flat_mapping", "flat" ] + summary: Return overhead_advance_flat_mapping by $flat + operationId: methods.get_overhead_advance_flat_mapping_by_flat + parameters: + - name: flatId + in: path + required: true + schema: + type: integer + responses: + '200': + description: overhead_advance_flat_mapping response + content: + 'application/json': + schema: + type: array + items: + $ref: '#/components/schemas/overhead_advance_flat_mapping' + security: + - jwt: ['secret'] /v1/parkings: get: tags: [ "parking" ] @@ -594,6 +682,28 @@ paths: $ref: '#/components/schemas/parking' security: - jwt: ['secret'] + /v1/parkings/premise/{premiseId}: + get: + tags: [ "parking", "premise" ] + summary: Return parking by $premise + operationId: methods.get_parking_by_premise + parameters: + - name: premiseId + in: path + required: true + schema: + type: integer + responses: + '200': + description: parking response + content: + 'application/json': + schema: + type: array + items: + $ref: '#/components/schemas/parking' + security: + - jwt: ['secret'] /v1/commercial_premises: get: tags: [ "commercial_premise" ] @@ -680,6 +790,28 @@ paths: $ref: '#/components/schemas/commercial_premise' security: - jwt: ['secret'] + /v1/commercial_premises/premise/{premiseId}: + get: + tags: [ "commercial_premise", "premise" ] + summary: Return commercial_premise by $premise + operationId: methods.get_commercial_premise_by_premise + parameters: + - name: premiseId + in: path + required: true + schema: + type: integer + responses: + '200': + description: commercial_premise response + content: + 'application/json': + schema: + type: array + items: + $ref: '#/components/schemas/commercial_premise' + security: + - jwt: ['secret'] /v1/tenancys: get: tags: [ "tenancy" ] @@ -766,6 +898,94 @@ paths: $ref: '#/components/schemas/tenancy' security: - jwt: ['secret'] + /v1/tenancys/tenant/{tenantId}: + get: + tags: [ "tenancy", "tenant" ] + summary: Return tenancy by $tenant + operationId: methods.get_tenancy_by_tenant + parameters: + - name: tenantId + in: path + required: true + schema: + type: integer + responses: + '200': + description: tenancy response + content: + 'application/json': + schema: + type: array + items: + $ref: '#/components/schemas/tenancy' + security: + - jwt: ['secret'] + /v1/tenancys/flat/{flatId}: + get: + tags: [ "tenancy", "flat" ] + summary: Return tenancy by $flat + operationId: methods.get_tenancy_by_flat + parameters: + - name: flatId + in: path + required: true + schema: + type: integer + responses: + '200': + description: tenancy response + content: + 'application/json': + schema: + type: array + items: + $ref: '#/components/schemas/tenancy' + security: + - jwt: ['secret'] + /v1/tenancys/parking/{parkingId}: + get: + tags: [ "tenancy", "parking" ] + summary: Return tenancy by $parking + operationId: methods.get_tenancy_by_parking + parameters: + - name: parkingId + in: path + required: true + schema: + type: integer + responses: + '200': + description: tenancy response + content: + 'application/json': + schema: + type: array + items: + $ref: '#/components/schemas/tenancy' + security: + - jwt: ['secret'] + /v1/tenancys/commercial_premise/{commercial_premiseId}: + get: + tags: [ "tenancy", "commercial_premise" ] + summary: Return tenancy by $commercial_premise + operationId: methods.get_tenancy_by_commercial_premise + parameters: + - name: commercial_premiseId + in: path + required: true + schema: + type: integer + responses: + '200': + description: tenancy response + content: + 'application/json': + schema: + type: array + items: + $ref: '#/components/schemas/tenancy' + security: + - jwt: ['secret'] /v1/fees: get: tags: [ "fee" ] @@ -911,6 +1131,50 @@ paths: $ref: '#/components/schemas/tenancy_fee_mapping' security: - jwt: ['secret'] + /v1/tenancy_fee_mappings/tenancy/{tenancyId}: + get: + tags: [ "tenancy_fee_mapping", "tenancy" ] + summary: Return tenancy_fee_mapping by $tenancy + operationId: methods.get_tenancy_fee_mapping_by_tenancy + parameters: + - name: tenancyId + in: path + required: true + schema: + type: integer + responses: + '200': + description: tenancy_fee_mapping response + content: + 'application/json': + schema: + type: array + items: + $ref: '#/components/schemas/tenancy_fee_mapping' + security: + - jwt: ['secret'] + /v1/tenancy_fee_mappings/fee/{feeId}: + get: + tags: [ "tenancy_fee_mapping", "fee" ] + summary: Return tenancy_fee_mapping by $fee + operationId: methods.get_tenancy_fee_mapping_by_fee + parameters: + - name: feeId + in: path + required: true + schema: + type: integer + responses: + '200': + description: tenancy_fee_mapping response + content: + 'application/json': + schema: + type: array + items: + $ref: '#/components/schemas/tenancy_fee_mapping' + security: + - jwt: ['secret'] /v1/account_entrys: get: tags: [ "account_entry" ] @@ -970,37 +1234,35 @@ paths: $ref: '#/components/schemas/account_entry' security: - jwt: ['secret'] - -# ------------------------------------------------------------------- -# ATTENTION: This file will not be parsed by Cheetah -# Use plain openapi/yaml syntax, no Cheetah -# escaping -# ------------------------------------------------------------------- - - - /v1/overhead_advance_flat_mappings/flat/{flatId}: + /v1/account_entrys/account/{accountId}: get: - tags: [ "overhead_advance_flat_mapping", "flat" ] - summary: Returns all overhead advance mappings for a given flat - operationId: additional_methods.get_overhead_advance_flat_mapping_by_flat + tags: [ "account_entry", "account" ] + summary: Return account_entry by $account + operationId: methods.get_account_entry_by_account parameters: - - name: flatId + - name: accountId in: path required: true schema: type: integer responses: '200': - description: $table.name response + description: account_entry response content: 'application/json': schema: type: array items: - $ref: '#/components/schemas/overhead_advance_flat_mapping' + $ref: '#/components/schemas/account_entry' security: - jwt: ['secret'] +# ------------------------------------------------------------------- +# ATTENTION: This file will not be parsed by Cheetah +# Use plain openapi/yaml syntax, no Cheetah +# escaping +# ------------------------------------------------------------------- + components: securitySchemes: jwt: diff --git a/api/openapi.yaml.tmpl b/api/openapi.yaml.tmpl index 697da27..de768eb 100644 --- a/api/openapi.yaml.tmpl +++ b/api/openapi.yaml.tmpl @@ -103,6 +103,32 @@ paths: security: - jwt: ['secret'] #end if +#for $column in $table.columns +#if (('foreignkey' in $column) and $column.foreignkey) + /v1/${table.name}s/${column.name}/{${column.name}Id}: + get: + tags: [ "$table.name", "$column.name" ] + summary: Return $table.name by $$column.name + operationId: methods.get_${table.name}_by_${column.name} + parameters: + - name: ${column.name}Id + in: path + required: true + schema: + type: integer + responses: + '200': + description: $table.name response + content: + 'application/json': + schema: + type: array + items: + \$ref: '#/components/schemas/$table.name' + security: + - jwt: ['secret'] +#end if +#end for #end for #include raw "./api/additional_endpoints.yaml"