move detailed datatypes api to separate route

This commit is contained in:
Laila Los
2022-08-31 11:05:12 +02:00
parent 8cbc5978a7
commit 1d34d6eb92
3 changed files with 34 additions and 20 deletions
+2 -2
View File
@@ -13,8 +13,8 @@ export function useDetailedDatatypes() {
async function getDatatypes() {
try {
const datatypesPromise = axios.get(`${getAppRoot()}api/datatypes?extension_only=false`);
const datatypeEDAMFormatsPromise = axios.get(`${getAppRoot()}api/datatypes/edam_formats?id_only=false`);
const datatypeEDAMDataPromise = axios.get(`${getAppRoot()}api/datatypes/edam_data?id_only=false`);
const datatypeEDAMFormatsPromise = axios.get(`${getAppRoot()}api/datatypes/edam_formats/detailed`);
const datatypeEDAMDataPromise = axios.get(`${getAppRoot()}api/datatypes/edam_data/detailed`);
const [baseTypes, datatypeEDAMFormats, datatypeEDAMData] = await Promise.all([
datatypesPromise,
+8 -8
View File
@@ -105,21 +105,21 @@ def _get_edam_details(datatypes_registry: Registry, edam_ids: Dict[str, str]):
def view_edam_formats(
datatypes_registry: Registry, id_only: Optional[bool] = True
datatypes_registry: Registry, detailed: Optional[bool] = False
) -> Union[Dict[str, str], DatatypesEDAMDetailsDict]:
if id_only:
return datatypes_registry.edam_formats
else:
if detailed:
return _get_edam_details(datatypes_registry, datatypes_registry.edam_formats)
else:
return datatypes_registry.edam_formats
def view_edam_data(
datatypes_registry: Registry, id_only: Optional[bool] = True
datatypes_registry: Registry, detailed: Optional[bool] = False
) -> Union[Dict[str, str], DatatypesEDAMDetailsDict]:
if id_only:
return datatypes_registry.edam_data
else:
if detailed:
return _get_edam_details(datatypes_registry, datatypes_registry.edam_data)
else:
return datatypes_registry.edam_data
__all__ = (
+24 -10
View File
@@ -120,21 +120,35 @@ class FastAPIDatatypes:
summary="Returns a dictionary/map of datatypes and EDAM formats",
response_description="Dictionary/map of datatypes and EDAM formats",
)
async def edam_formats(
self,
id_only: Optional[bool] = IdentifierOnly,
) -> Union[DatatypesEDAMDetailsDict, Dict[str, str]]:
async def edam_formats(self) -> Dict[str, str]:
"""Gets a map of datatypes and their corresponding EDAM formats."""
return view_edam_formats(self.datatypes_registry, id_only)
return view_edam_formats(self.datatypes_registry)
@router.get(
"/api/datatypes/edam_formats/detailed",
summary="Returns a dictionary of datatypes and EDAM format details",
response_description="Dictionary of EDAM format details containing the EDAM iri, label, and definition",
)
async def edam_formats_detailed(self) -> DatatypesEDAMDetailsDict:
"""Gets a map of datatypes and their corresponding EDAM formats.
EDAM formats contain the EDAM iri, label, and definition."""
return view_edam_formats(self.datatypes_registry, True)
@router.get(
"/api/datatypes/edam_data",
summary="Returns a dictionary/map of datatypes and EDAM data",
response_description="Dictionary/map of datatypes and EDAM data",
)
async def edam_data(
self,
id_only: Optional[bool] = IdentifierOnly,
) -> Union[DatatypesEDAMDetailsDict, Dict[str, str]]:
async def edam_data(self) -> Dict[str, str]:
"""Gets a map of datatypes and their corresponding EDAM data."""
return view_edam_data(self.datatypes_registry, id_only)
return view_edam_data(self.datatypes_registry)
@router.get(
"/api/datatypes/edam_data/detailed",
summary="Returns a dictionary of datatypes and EDAM data details",
response_description="Dictionary of EDAM data details containing the EDAM iri, label, and definition",
)
async def edam_data_detailed(self) -> DatatypesEDAMDetailsDict:
"""Gets a map of datatypes and their corresponding EDAM data.
EDAM data contains the EDAM iri, label, and definition."""
return view_edam_data(self.datatypes_registry, True)