mirror of
https://github.com/tiqi-group/pydase.git
synced 2025-04-19 16:10:01 +02:00
updates http trigger_method endpoint to handle async methods, as well
This commit is contained in:
parent
c002d04328
commit
cfe190ca5b
@ -1,3 +1,4 @@
|
|||||||
|
import inspect
|
||||||
import logging
|
import logging
|
||||||
from typing import TYPE_CHECKING
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
@ -7,9 +8,11 @@ import aiohttp_middlewares.error
|
|||||||
from pydase.data_service.state_manager import StateManager
|
from pydase.data_service.state_manager import StateManager
|
||||||
from pydase.server.web_server.api.v1.endpoints import (
|
from pydase.server.web_server.api.v1.endpoints import (
|
||||||
get_value,
|
get_value,
|
||||||
|
trigger_async_method,
|
||||||
trigger_method,
|
trigger_method,
|
||||||
update_value,
|
update_value,
|
||||||
)
|
)
|
||||||
|
from pydase.utils.helpers import get_object_attr_from_path
|
||||||
from pydase.utils.serialization.serializer import dump
|
from pydase.utils.serialization.serializer import dump
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
@ -54,8 +57,17 @@ def create_api_application(state_manager: StateManager) -> aiohttp.web.Applicati
|
|||||||
async def _trigger_method(request: aiohttp.web.Request) -> aiohttp.web.Response:
|
async def _trigger_method(request: aiohttp.web.Request) -> aiohttp.web.Response:
|
||||||
data: TriggerMethodDict = await request.json()
|
data: TriggerMethodDict = await request.json()
|
||||||
|
|
||||||
|
method = get_object_attr_from_path(state_manager.service, data["access_path"])
|
||||||
|
|
||||||
try:
|
try:
|
||||||
return aiohttp.web.json_response(trigger_method(state_manager, data))
|
if inspect.iscoroutinefunction(method):
|
||||||
|
method_return = await trigger_async_method(
|
||||||
|
state_manager=state_manager, data=data
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
method_return = trigger_method(state_manager=state_manager, data=data)
|
||||||
|
|
||||||
|
return aiohttp.web.json_response(method_return)
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.exception(e)
|
logger.exception(e)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user