Skip to content

Commit eec16d8

Browse files
committed
add webserver rest endpoint for getting user jobs
1 parent b01e479 commit eec16d8

File tree

1 file changed

+28
-1
lines changed
  • services/web/server/src/simcore_service_webserver/storage

1 file changed

+28
-1
lines changed

services/web/server/src/simcore_service_webserver/storage/_rest.py

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,10 @@
4141
get_result,
4242
get_status,
4343
)
44-
from servicelib.rabbitmq.rpc_interfaces.storage.data_export import start_data_export
44+
from servicelib.rabbitmq.rpc_interfaces.storage.data_export import (
45+
get_user_jobs,
46+
start_data_export,
47+
)
4548
from servicelib.request_keys import RQT_USERID_KEY
4649
from servicelib.rest_responses import unwrap_envelope
4750
from simcore_service_webserver.rabbitmq import get_rabbitmq_rpc_client
@@ -412,6 +415,30 @@ class _PathParams(BaseModel):
412415
)
413416

414417

418+
@routes.get(
419+
_storage_prefix + "/async-jobs",
420+
name="get_async_jobs",
421+
)
422+
@login_required
423+
@permission_required("storage.files.*")
424+
@handle_data_export_exceptions
425+
async def get_async_jobs(request: web.Request) -> web.Response:
426+
class _RequestContext(RequestParameters):
427+
user_id: UserID = Field(..., alias=RQT_USERID_KEY) # type: ignore[literal-required]
428+
429+
_req_ctx = _RequestContext.model_validate(request)
430+
431+
rabbitmq_rpc_client = get_rabbitmq_rpc_client(request.app)
432+
433+
user_async_jobs = await get_user_jobs(
434+
rabbitmq_rpc_client=rabbitmq_rpc_client, user_id=_req_ctx.user_id
435+
)
436+
return create_data_response(
437+
[StorageAsyncJobGet.from_rpc_schema(job) for job in user_async_jobs],
438+
status=status.HTTP_200_OK,
439+
)
440+
441+
415442
@routes.get(
416443
_storage_prefix + "/async-jobs/{job_id}/status",
417444
name="get_async_job_status",

0 commit comments

Comments
 (0)