From 4cde4e4f5ae3bfed245728e5132f8a1c0bbe8df9 Mon Sep 17 00:00:00 2001 From: Asaf Cohen Date: Mon, 26 Aug 2024 14:46:41 +0300 Subject: [PATCH] add missing relationship tuple filters to the rel tuples api --- permit/api/relationship_tuples.py | 20 +++++++++++++++++++- setup.py | 2 +- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/permit/api/relationship_tuples.py b/permit/api/relationship_tuples.py index 71ece30..8f45688 100644 --- a/permit/api/relationship_tuples.py +++ b/permit/api/relationship_tuples.py @@ -44,6 +44,10 @@ def __relationship_tuples(self) -> SimpleHttpClient: @validate_arguments async def list( self, + subject_key: Optional[str] = None, + relation_key: Optional[str] = None, + object_key: Optional[str] = None, + tenant_key: Optional[str] = None, page: int = 1, per_page: int = 100, ) -> List[RelationshipTupleRead]: @@ -51,6 +55,10 @@ async def list( Retrieves a list of relationship tuples based on the specified filters. Args: + subject_key: if specified, only relationship tuples with this subject will be fetched. + relation_key: if specified, only relationship tuples with this relation will be fetched. + object_key: if specified, only relationship tuples with this object will be fetched. + tenant_key: if specified, only relationship tuples with this tenant will be fetched. page: The page number to fetch (default: 1). per_page: How many items to fetch per page (default: 100). @@ -61,7 +69,17 @@ async def list( PermitApiError: If the API returns an error HTTP status code. PermitContextError: If the configured ApiContext does not match the required endpoint context. """ - params = pagination_params(page, per_page) + params = list(pagination_params(page, per_page).items()) + + if subject_key is not None: + params.append(("subject", subject_key)) + if relation_key is not None: + params.append(("relation", relation_key)) + if object_key is not None: + params.append(("object", object_key)) + if tenant_key is not None: + params.append(("tenant", tenant_key)) + return await self.__relationship_tuples.get( "", model=List[RelationshipTupleRead], diff --git a/setup.py b/setup.py index 217e9e7..53cc126 100644 --- a/setup.py +++ b/setup.py @@ -18,7 +18,7 @@ def get_readme() -> str: setup( name="permit", - version="2.6.0", + version="2.6.1", packages=find_packages(), author="Asaf Cohen", author_email="asaf@permit.io",