From a9881928d5a5c98cdc5d57cec9dc6bb59f49c8a7 Mon Sep 17 00:00:00 2001 From: Harshith VH Date: Thu, 18 Sep 2025 15:16:15 +0530 Subject: [PATCH] add delete data parameter --- .gitignore | 1 + src/airweave/source_connections/client.py | 16 ++++++++++++---- src/airweave/source_connections/raw_client.py | 16 ++++++++++++++-- 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index d2e4ca8..e22009c 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ __pycache__/ dist/ poetry.toml +venv/ diff --git a/src/airweave/source_connections/client.py b/src/airweave/source_connections/client.py index f659bdd..9bd7fc1 100644 --- a/src/airweave/source_connections/client.py +++ b/src/airweave/source_connections/client.py @@ -192,7 +192,7 @@ def get( return _response.data def delete( - self, source_connection_id: str, *, request_options: typing.Optional[RequestOptions] = None + self, source_connection_id: str, *, delete_data: typing.Optional[bool] = False, request_options: typing.Optional[RequestOptions] = None ) -> SourceConnection: """ Delete a source connection and all related data. @@ -201,6 +201,9 @@ def delete( ---------- source_connection_id : str + delete_data : typing.Optional[bool] + Whether to delete the source connection data + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -218,9 +221,10 @@ def delete( ) client.source_connections.delete( source_connection_id="source_connection_id", + delete_data=True, ) """ - _response = self._raw_client.delete(source_connection_id, request_options=request_options) + _response = self._raw_client.delete(source_connection_id, delete_data=delete_data, request_options=request_options) return _response.data def run( @@ -537,7 +541,7 @@ async def main() -> None: return _response.data async def delete( - self, source_connection_id: str, *, request_options: typing.Optional[RequestOptions] = None + self, source_connection_id: str, *, delete_data: typing.Optional[bool] = False, request_options: typing.Optional[RequestOptions] = None ) -> SourceConnection: """ Delete a source connection and all related data. @@ -546,6 +550,9 @@ async def delete( ---------- source_connection_id : str + delete_data : typing.Optional[bool] + Whether to delete the source connection data + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -568,12 +575,13 @@ async def delete( async def main() -> None: await client.source_connections.delete( source_connection_id="source_connection_id", + delete_data=True, ) asyncio.run(main()) """ - _response = await self._raw_client.delete(source_connection_id, request_options=request_options) + _response = await self._raw_client.delete(source_connection_id, delete_data=delete_data, request_options=request_options) return _response.data async def run( diff --git a/src/airweave/source_connections/raw_client.py b/src/airweave/source_connections/raw_client.py index 9e7b64f..38da266 100644 --- a/src/airweave/source_connections/raw_client.py +++ b/src/airweave/source_connections/raw_client.py @@ -247,7 +247,7 @@ def get( raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) def delete( - self, source_connection_id: str, *, request_options: typing.Optional[RequestOptions] = None + self, source_connection_id: str, *, delete_data: typing.Optional[bool] = False, request_options: typing.Optional[RequestOptions] = None ) -> HttpResponse[SourceConnection]: """ Delete a source connection and all related data. @@ -256,6 +256,9 @@ def delete( ---------- source_connection_id : str + delete_data : typing.Optional[bool] + Whether to delete the source connection data + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -267,6 +270,9 @@ def delete( _response = self._client_wrapper.httpx_client.request( f"source-connections/{jsonable_encoder(source_connection_id)}", method="DELETE", + params={ + "delete_data": delete_data, + }, request_options=request_options, ) try: @@ -684,7 +690,7 @@ async def get( raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) async def delete( - self, source_connection_id: str, *, request_options: typing.Optional[RequestOptions] = None + self, source_connection_id: str, *, delete_data: typing.Optional[bool] = False, request_options: typing.Optional[RequestOptions] = None ) -> AsyncHttpResponse[SourceConnection]: """ Delete a source connection and all related data. @@ -693,6 +699,9 @@ async def delete( ---------- source_connection_id : str + delete_data : typing.Optional[bool] + Whether to delete the source connection data + request_options : typing.Optional[RequestOptions] Request-specific configuration. @@ -704,6 +713,9 @@ async def delete( _response = await self._client_wrapper.httpx_client.request( f"source-connections/{jsonable_encoder(source_connection_id)}", method="DELETE", + params={ + "delete_data": delete_data, + }, request_options=request_options, ) try: