Skip to content

Commit 38c9910

Browse files
committed
more
1 parent c11735c commit 38c9910

File tree

10 files changed

+473
-555
lines changed

10 files changed

+473
-555
lines changed
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
import logging
2+
from typing import Annotated
3+
4+
from fastapi import APIRouter, Depends, Request
5+
from models_library.api_schemas_storage import DatasetMetaDataGet, FileMetaDataGet
6+
from models_library.generics import Envelope
7+
8+
# Exclusive for simcore-s3 storage -----------------------
9+
from ...dsm import get_dsm_provider
10+
from ...models import (
11+
FilesMetadataDatasetQueryParams,
12+
LocationID,
13+
StorageQueryParamsBase,
14+
)
15+
16+
_logger = logging.getLogger(__name__)
17+
18+
router = APIRouter(
19+
tags=[
20+
"datasets",
21+
],
22+
)
23+
24+
25+
@router.get(
26+
"/locations/{location_id}/datasets",
27+
response_model=Envelope[list[DatasetMetaDataGet]],
28+
)
29+
async def list_datasets_metadata(
30+
query_params: Annotated[StorageQueryParamsBase, Depends()],
31+
location_id: LocationID,
32+
request: Request,
33+
) -> Envelope[DatasetMetaDataGet]:
34+
dsm = get_dsm_provider(request.app).get(location_id)
35+
data = await dsm.list_datasets(query_params.user_id)
36+
return Envelope[list[DatasetMetaDataGet]](
37+
data=[DatasetMetaDataGet(**d.model_dump()) for d in data]
38+
)
39+
40+
41+
@router.get(
42+
"/locations/{location_id}/datasets/{dataset_id}/metadata",
43+
response_model=Envelope[list[FileMetaDataGet]],
44+
)
45+
async def list_dataset_files_metadata(
46+
query_params: Annotated[FilesMetadataDatasetQueryParams, Depends()],
47+
location_id: LocationID,
48+
dataset_id: str,
49+
request: Request,
50+
) -> Envelope[list[FileMetaDataGet]]:
51+
dsm = get_dsm_provider(request.app).get(location_id)
52+
data = await dsm.list_files_in_dataset(
53+
user_id=query_params.user_id,
54+
dataset_id=dataset_id,
55+
expand_dirs=query_params.expand_dirs,
56+
)
57+
return Envelope[list[FileMetaDataGet]](
58+
data=[FileMetaDataGet(**d.model_dump()) for d in data]
59+
)

0 commit comments

Comments
 (0)