From b591b32da2566791d4813104efa3c118582725d1 Mon Sep 17 00:00:00 2001 From: Sercan Sahin Date: Fri, 5 Apr 2024 15:56:36 +0200 Subject: [PATCH] adapter.http: implement the AAS reference routes --- basyx/aas/adapter/http.py | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/basyx/aas/adapter/http.py b/basyx/aas/adapter/http.py index dfd554670..2009e2de9 100644 --- a/basyx/aas/adapter/http.py +++ b/basyx/aas/adapter/http.py @@ -391,10 +391,12 @@ def __init__(self, object_store: model.AbstractObjectStore): Submount("/shells", [ Rule("/", methods=["GET"], endpoint=self.get_aas_all), Rule("/", methods=["POST"], endpoint=self.post_aas), + Rule("/$reference/", methods=["GET"], endpoint=self.get_aas_all_reference), Submount("/", [ Rule("/", methods=["GET"], endpoint=self.get_aas), Rule("/", methods=["PUT"], endpoint=self.put_aas), Rule("/", methods=["DELETE"], endpoint=self.delete_aas), + Rule("/$reference/", methods=["GET"], endpoint=self.get_aas_reference), Submount("/asset-information", [ Rule("/", methods=["GET"], endpoint=self.get_aas_asset_information), Rule("/", methods=["PUT"], endpoint=self.put_aas_asset_information), @@ -639,16 +641,24 @@ def post_aas(self, request: Request, url_args: Dict, map_adapter: MapAdapter) -> }, force_external=True) return response_t(aas, status=201, headers={"Location": created_resource_url}) - def delete_aas(self, request: Request, url_args: Dict, **_kwargs) -> Response: + def get_aas_all_reference(self, request: Request, url_args: Dict, **_kwargs) -> Response: response_t = get_response_type(request) - self.object_store.remove(self._get_shell(url_args)) - return response_t() + aashells = self._get_shells(request) + references: list[model.ModelReference] = [model.ModelReference.from_referable(aas) + for aas in aashells] + return response_t(references) # --------- AAS ROUTES --------- def get_aas(self, request: Request, url_args: Dict, **_kwargs) -> Response: response_t = get_response_type(request) aas = self._get_shell(url_args) - return response_t(aas, stripped=is_stripped_request(request)) + return response_t(aas) + + def get_aas_reference(self, request: Request, url_args: Dict, **_kwargs) -> Response: + response_t = get_response_type(request) + aas = self._get_shell(url_args) + reference = model.ModelReference.from_referable(aas) + return response_t(reference) def put_aas(self, request: Request, url_args: Dict, **_kwargs) -> Response: response_t = get_response_type(request) @@ -658,6 +668,11 @@ def put_aas(self, request: Request, url_args: Dict, **_kwargs) -> Response: aas.commit() return response_t() + def delete_aas(self, request: Request, url_args: Dict, **_kwargs) -> Response: + response_t = get_response_type(request) + self.object_store.remove(self._get_shell(url_args)) + return response_t() + def get_aas_asset_information(self, request: Request, url_args: Dict, **_kwargs) -> Response: response_t = get_response_type(request) aas = self._get_shell(url_args)