2222from werkzeug .exceptions import BadRequest , Conflict , NotFound
2323from werkzeug .routing import MapAdapter , Rule , Submount
2424
25- from app .interfaces .base import APIResponse , HTTPApiDecoder , ObjectStoreWSGIApp , T , is_stripped_request
25+ from app .interfaces .base import APIResponse , HTTPApiDecoder , ObjectStoreWSGIApp , T , is_stripped_request , PagingMetadata
2626from app .util .converters import IdentifierToBase64URLConverter , IdShortPathConverter , base64url_decode
2727from .base import (ObjectStoreWSGIApp , APIResponse , is_stripped_request , HTTPApiDecoder , T ,
2828 ServiceSpecificationProfileEnum , ServiceDescription )
@@ -428,7 +428,9 @@ def _get_submodel_reference(
428428 return ref
429429 raise NotFound (f"The AAS { aas !r} doesn't have a submodel reference to { submodel_id !r} !" )
430430
431- def _get_shells (self , request : Request ) -> Tuple [Iterator [model .AssetAdministrationShell ], Optional [int ]]:
431+ def _get_shells (
432+ self , request : Request
433+ ) -> Tuple [Iterator [model .AssetAdministrationShell ], Optional [PagingMetadata ]]:
432434 aas : Iterator [model .AssetAdministrationShell ] = self ._get_all_obj_of_type (model .AssetAdministrationShell )
433435
434436 id_short = request .args .get ("idShort" )
@@ -471,13 +473,13 @@ def _get_shells(self, request: Request) -> Tuple[Iterator[model.AssetAdministrat
471473 aas ,
472474 )
473475
474- paginated_aas , end_index = self ._get_slice (request , aas )
475- return paginated_aas , end_index
476+ paginated_aas , paging_metadata = self ._get_slice (request , aas )
477+ return paginated_aas , paging_metadata
476478
477479 def _get_shell (self , url_args : Dict ) -> model .AssetAdministrationShell :
478480 return self ._get_obj_ts (url_args ["aas_id" ], model .AssetAdministrationShell )
479481
480- def _get_submodels (self , request : Request ) -> Tuple [Iterator [model .Submodel ], Optional [int ]]:
482+ def _get_submodels (self , request : Request ) -> Tuple [Iterator [model .Submodel ], Optional [PagingMetadata ]]:
481483 submodels : Iterator [model .Submodel ] = self ._get_all_obj_of_type (model .Submodel )
482484 id_short = request .args .get ("idShort" )
483485 if id_short is not None :
@@ -488,19 +490,19 @@ def _get_submodels(self, request: Request) -> Tuple[Iterator[model.Submodel], Op
488490 semantic_id , model .Reference , False # type: ignore[type-abstract]
489491 )
490492 submodels = filter (lambda sm : sm .semantic_id == spec_semantic_id , submodels )
491- paginated_submodels , end_index = self ._get_slice (request , submodels )
492- return paginated_submodels , end_index
493+ paginated_submodels , paging_metadata = self ._get_slice (request , submodels )
494+ return paginated_submodels , paging_metadata
493495
494496 def _get_submodel (self , url_args : Dict ) -> model .Submodel :
495497 return self ._get_obj_ts (url_args ["submodel_id" ], model .Submodel )
496498
497499 def _get_submodel_submodel_elements (
498500 self , request : Request , url_args : Dict
499- ) -> Tuple [Iterator [model .SubmodelElement ], Optional [int ]]:
501+ ) -> Tuple [Iterator [model .SubmodelElement ], Optional [PagingMetadata ]]:
500502 submodel = self ._get_submodel (url_args )
501503 paginated_submodel_elements : Iterator [model .SubmodelElement ]
502- paginated_submodel_elements , end_index = self ._get_slice (request , submodel .submodel_element )
503- return paginated_submodel_elements , end_index
504+ paginated_submodel_elements , paging_metadata = self ._get_slice (request , submodel .submodel_element )
505+ return paginated_submodel_elements , paging_metadata
504506
505507 def _get_submodel_submodel_elements_id_short_path (self , url_args : Dict ) -> model .SubmodelElement :
506508 submodel = self ._get_submodel (url_args )
@@ -523,8 +525,8 @@ def get_description(self, request: Request, url_args: Dict, response_t: Type[API
523525
524526 # ------ AAS REPO ROUTES -------
525527 def get_aas_all (self , request : Request , url_args : Dict , response_t : Type [APIResponse ], ** _kwargs ) -> Response :
526- aashells , cursor = self ._get_shells (request )
527- return response_t (list (aashells ), cursor = cursor )
528+ aashells , paging_metadata = self ._get_shells (request )
529+ return response_t (list (aashells ), paging_metadata = paging_metadata )
528530
529531 def post_aas (
530532 self , request : Request , url_args : Dict , response_t : Type [APIResponse ], map_adapter : MapAdapter
@@ -540,9 +542,9 @@ def post_aas(
540542 def get_aas_all_reference (
541543 self , request : Request , url_args : Dict , response_t : Type [APIResponse ], ** _kwargs
542544 ) -> Response :
543- aashells , cursor = self ._get_shells (request )
545+ aashells , paging_metadata = self ._get_shells (request )
544546 references : list [model .ModelReference ] = [model .ModelReference .from_referable (aas ) for aas in aashells ]
545- return response_t (references , cursor = cursor )
547+ return response_t (references , paging_metadata = paging_metadata )
546548
547549 # --------- AAS ROUTES ---------
548550 def get_aas (self , request : Request , url_args : Dict , response_t : Type [APIResponse ], ** _kwargs ) -> Response :
@@ -651,8 +653,8 @@ def aas_submodel_refs_redirect(
651653
652654 # ------ SUBMODEL REPO ROUTES -------
653655 def get_submodel_all (self , request : Request , url_args : Dict , response_t : Type [APIResponse ], ** _kwargs ) -> Response :
654- submodels , cursor = self ._get_submodels (request )
655- return response_t (list (submodels ), cursor = cursor , stripped = is_stripped_request (request ))
656+ submodels , paging_metadata = self ._get_submodels (request )
657+ return response_t (list (submodels ), paging_metadata = paging_metadata , stripped = is_stripped_request (request ))
656658
657659 def post_submodel (
658660 self , request : Request , url_args : Dict , response_t : Type [APIResponse ], map_adapter : MapAdapter
@@ -669,17 +671,17 @@ def get_submodel_all_metadata(self, request: Request, url_args: Dict, response_t
669671 ** _kwargs ) -> Response :
670672 if "level" in request .args :
671673 raise BadRequest (f"level cannot be used when retrieving metadata!" )
672- submodels , cursor = self ._get_submodels (request )
673- return response_t (list (submodels ), cursor = cursor , stripped = True )
674+ submodels , paging_metadata = self ._get_submodels (request )
675+ return response_t (list (submodels ), paging_metadata = paging_metadata , stripped = True )
674676
675677 def get_submodel_all_reference (
676678 self , request : Request , url_args : Dict , response_t : Type [APIResponse ], ** _kwargs
677679 ) -> Response :
678- submodels , cursor = self ._get_submodels (request )
680+ submodels , paging_metadata = self ._get_submodels (request )
679681 references : list [model .ModelReference ] = [
680682 model .ModelReference .from_referable (submodel ) for submodel in submodels
681683 ]
682- return response_t (references , cursor = cursor , stripped = is_stripped_request (request ))
684+ return response_t (references , paging_metadata = paging_metadata , stripped = is_stripped_request (request ))
683685
684686 # --------- SUBMODEL ROUTES ---------
685687
@@ -713,24 +715,26 @@ def put_submodel(self, request: Request, url_args: Dict, response_t: Type[APIRes
713715 def get_submodel_submodel_elements (
714716 self , request : Request , url_args : Dict , response_t : Type [APIResponse ], ** _kwargs
715717 ) -> Response :
716- submodel_elements , cursor = self ._get_submodel_submodel_elements (request , url_args )
717- return response_t (list (submodel_elements ), cursor = cursor , stripped = is_stripped_request (request ))
718+ submodel_elements , paging_metadata = self ._get_submodel_submodel_elements (request , url_args )
719+ return response_t (
720+ list (submodel_elements ), paging_metadata = paging_metadata , stripped = is_stripped_request (request )
721+ )
718722
719723 def get_submodel_submodel_elements_metadata (self , request : Request , url_args : Dict , response_t : Type [APIResponse ],
720724 ** _kwargs ) -> Response :
721725 if "level" in request .args :
722726 raise BadRequest (f"level cannot be used when retrieving metadata!" )
723- submodel_elements , cursor = self ._get_submodel_submodel_elements (request , url_args )
724- return response_t (list (submodel_elements ), cursor = cursor , stripped = True )
727+ submodel_elements , paging_metadata = self ._get_submodel_submodel_elements (request , url_args )
728+ return response_t (list (submodel_elements ), paging_metadata = paging_metadata , stripped = True )
725729
726730 def get_submodel_submodel_elements_reference (
727731 self , request : Request , url_args : Dict , response_t : Type [APIResponse ], ** _kwargs
728732 ) -> Response :
729- submodel_elements , cursor = self ._get_submodel_submodel_elements (request , url_args )
733+ submodel_elements , paging_metadata = self ._get_submodel_submodel_elements (request , url_args )
730734 references : list [model .ModelReference ] = [
731735 model .ModelReference .from_referable (element ) for element in list (submodel_elements )
732736 ]
733- return response_t (references , cursor = cursor , stripped = is_stripped_request (request ))
737+ return response_t (references , paging_metadata = paging_metadata , stripped = is_stripped_request (request ))
734738
735739 def get_submodel_submodel_elements_id_short_path (
736740 self , request : Request , url_args : Dict , response_t : Type [APIResponse ], ** _kwargs
0 commit comments