services/ui_backend_service/api/flow.py (26 lines of code) (raw):
from services.utils import handle_exceptions
from .utils import find_records
class FlowApi(object):
def __init__(self, app, db):
self.db = db
app.router.add_route("GET", "/flows", self.get_all_flows)
app.router.add_route("GET", "/flows/{flow_id}", self.get_flow)
self._async_table = self.db.flow_table_postgres
@handle_exceptions
async def get_flow(self, request):
"""
---
description: Get one flow
tags:
- Flow
parameters:
- $ref: '#/definitions/Params/Path/flow_id'
produces:
- application/json
responses:
"200":
description: Returns one flow
schema:
$ref: '#/definitions/ResponsesFlow'
"405":
description: invalid HTTP Method
schema:
$ref: '#/definitions/ResponsesError405'
"""
flow_name = request.match_info.get("flow_id")
return await find_records(request,
self._async_table,
fetch_single=True,
initial_conditions=["flow_id = %s"],
initial_values=[flow_name])
@handle_exceptions
async def get_all_flows(self, request):
"""
---
description: Get all flows
tags:
- Flow
parameters:
- $ref: '#/definitions/Params/Builtin/_page'
- $ref: '#/definitions/Params/Builtin/_limit'
- $ref: '#/definitions/Params/Builtin/_order'
- $ref: '#/definitions/Params/Builtin/_tags'
- $ref: '#/definitions/Params/Builtin/_group'
- $ref: '#/definitions/Params/Custom/flow_id'
- $ref: '#/definitions/Params/Custom/user_name'
- $ref: '#/definitions/Params/Custom/ts_epoch'
produces:
- application/json
responses:
"200":
description: Returns all flows
schema:
$ref: '#/definitions/ResponsesFlowList'
"405":
description: invalid HTTP Method
schema:
$ref: '#/definitions/ResponsesError405'
"""
return await find_records(request,
self._async_table,
initial_conditions=[],
initial_values=[],
allowed_order=self._async_table.keys,
allowed_group=self._async_table.keys,
allowed_filters=self._async_table.keys
)