11"""Routes for the dds_glossary server."""
22
3- from http import HTTPStatus
4-
53from fastapi import APIRouter , Depends , Request
6- from fastapi .responses import JSONResponse , RedirectResponse
4+ from fastapi .responses import RedirectResponse
75from fastapi_versioning import version
86from starlette .templating import Jinja2Templates , _TemplateResponse
97
1210 CollectionResponse ,
1311 ConceptResponse ,
1412 ConceptSchemeResponse ,
15- FullConeptResponse ,
13+ EntityResponse ,
14+ FullConceptResponse ,
15+ FullConceptSchemeResponse ,
1616 InitDatasetsResponse ,
1717 VersionResponse ,
1818)
@@ -141,29 +141,47 @@ def get_concept_schemes(
141141 return controller .get_concept_schemes (lang = lang )
142142
143143
144- @router_versioned .get ("/concepts " )
144+ @router_versioned .get ("/scheme " )
145145@version (0 , 1 )
146- def get_concepts (
146+ def get_concept_scheme (
147147 concept_scheme_iri : str ,
148148 controller : GlossaryController = Depends (get_controller ),
149149 lang : str = "en" ,
150- ) -> JSONResponse :
150+ ) -> FullConceptSchemeResponse :
151151 """
152- Returns all the saved concepts for a concept scheme.
152+ Returns a concept scheme.
153153
154154 Args:
155155 concept_scheme_iri (str): The concept scheme IRI.
156156 controller (GlossaryController): The glossary controller.
157157 lang (str): The language. Defaults to "en".
158158
159159 Returns:
160- JSONResponse: The concepts.
160+ FullConceptSchemeResponse: The concept scheme with member
161+ concepts and collections.
161162 """
162- return JSONResponse (
163- content = {"concepts" : controller .get_concepts (concept_scheme_iri , lang = lang )},
164- media_type = "application/json" ,
165- status_code = HTTPStatus .OK ,
166- )
163+ return controller .get_concept_scheme (concept_scheme_iri , lang = lang )
164+
165+
166+ @router_versioned .get ("/collections" )
167+ @version (0 , 1 )
168+ def get_collections (
169+ concept_scheme_iri : str ,
170+ controller : GlossaryController = Depends (get_controller ),
171+ lang : str = "en" ,
172+ ) -> list [EntityResponse ]:
173+ """
174+ Returns all the collections.
175+
176+ Args:
177+ concept_scheme_iri (str): The concept scheme IRI.
178+ controller (GlossaryController): The glossary controller.
179+ lang (str): The language. Defaults to "en".
180+
181+ Returns:
182+ list[CollectionResponse]: The collections.
183+ """
184+ return controller .get_collections (concept_scheme_iri , lang = lang )
167185
168186
169187@router_versioned .get ("/collection" )
@@ -175,23 +193,47 @@ def get_collection(
175193) -> CollectionResponse :
176194 """
177195 Returns a collection.
196+
178197 Args:
179198 collection_iri (str): The collection IRI.
180199 controller (GlossaryController): The glossary controller.
181200 lang (str): The language. Defaults to "en".
201+
182202 Returns:
183- JSONResponse: The collection.
203+ CollectionResponse: The collection with member collections
204+ and concepts.
184205 """
185206 return controller .get_collection (collection_iri , lang = lang )
186207
187208
209+ @router_versioned .get ("/concepts" )
210+ @version (0 , 1 )
211+ def get_concepts (
212+ concept_scheme_iri : str ,
213+ controller : GlossaryController = Depends (get_controller ),
214+ lang : str = "en" ,
215+ ) -> list [ConceptResponse ]:
216+ """
217+ Returns all the concepts in a concept scheme.
218+
219+ Args:
220+ concept_scheme_iri (str): The concept scheme IRI.
221+ controller (GlossaryController): The glossary controller.
222+ lang (str): The language. Defaults to "en".
223+
224+ Returns:
225+ list[ConceptResponse]: The concepts.
226+ """
227+ return controller .get_concepts (concept_scheme_iri , lang = lang )
228+
229+
188230@router_versioned .get ("/concept" )
189231@version (0 , 1 )
190232def get_concept (
191233 concept_iri : str ,
192234 controller : GlossaryController = Depends (get_controller ),
193235 lang : str = "en" ,
194- ) -> FullConeptResponse :
236+ ) -> FullConceptResponse :
195237 """
196238 Returns a concept.
197239
@@ -200,6 +242,6 @@ def get_concept(
200242 lang (str): The language. Defaults to "en".
201243
202244 Returns:
203- FullConeptResponse : The concept with concept scheme and relations.
245+ FullConceptResponse : The concept with concept scheme and relations.
204246 """
205247 return controller .get_concept (concept_iri , lang = lang )
0 commit comments