123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #!/usr/bin/env python3
- import os
- from datetime import datetime
- from configparser import ConfigParser
- from starlette.routing import Route, Router
- from starlette.responses import PlainTextResponse, JSONResponse
- from pprint import pprint
- import uvicorn
- import json
-
- # pyHeatpump modules
- from pyheatpump.db import sql
- from pyheatpump.models.variable_type import VariableType
-
-
- async def get_variable_types(request):
- return JSONResponse(dict([
- (key, val.__dict__)
- for key, val in VariableType.getall().items()
- ]))
-
-
- async def set_variable_types(request):
-
- body = json.loads(await request.json())
-
- for var_type_label, var_type_values in body.items():
- vt = VariableType(label=var_type_label)
- for key, val in var_type_values.items():
- if key in [ 'start_address', 'end_address' ]:
- setattr(vt, key, val)
-
- vt.save()
-
- return PlainTextResponse('OK')
-
-
- async def variable_types_routes(request, *args, **kwargs):
- if request['method'] == 'GET':
- return await get_variable_types(request)
- elif request['method'] == 'POST':
- return await set_variable_types(request)
-
-
- ROUTES=[
- Route('/', variable_types_routes, methods=['GET', 'POST'])
- ]
-
- app = Router(routes=ROUTES)
-
- if __name__ == '__main__':
- uvicorn.run('pyHeatpump:variable_types.app',
- host='127.0.0.1',
- port=8000)
|