feat(asyncify): migrate delete provider (#2439)
This commit is contained in:
@@ -87,7 +87,7 @@ def check_provider(
|
||||
|
||||
|
||||
@router.delete("/{provider_id}", response_model=None, operation_id="delete_provider")
|
||||
def delete_provider(
|
||||
async def delete_provider(
|
||||
provider_id: str,
|
||||
actor_id: Optional[str] = Header(None, alias="user_id"),
|
||||
server: "SyncServer" = Depends(get_letta_server),
|
||||
@@ -96,8 +96,8 @@ def delete_provider(
|
||||
Delete an existing custom provider
|
||||
"""
|
||||
try:
|
||||
actor = server.user_manager.get_user_or_default(user_id=actor_id)
|
||||
server.provider_manager.delete_provider_by_id(provider_id=provider_id, actor=actor)
|
||||
actor = await server.user_manager.get_actor_or_default_async(actor_id=actor_id)
|
||||
await server.provider_manager.delete_provider_by_id_async(provider_id=provider_id, actor=actor)
|
||||
return JSONResponse(status_code=status.HTTP_200_OK, content={"message": f"Provider id={provider_id} successfully deleted"})
|
||||
except NoResultFound:
|
||||
raise HTTPException(status_code=404, detail=f"Provider provider_id={provider_id} not found for user_id={actor.id}.")
|
||||
|
||||
@@ -86,6 +86,21 @@ class ProviderManager:
|
||||
|
||||
session.commit()
|
||||
|
||||
@enforce_types
|
||||
@trace_method
|
||||
async def delete_provider_by_id_async(self, provider_id: str, actor: PydanticUser):
|
||||
"""Delete a provider."""
|
||||
async with db_registry.async_session() as session:
|
||||
# Clear api key field
|
||||
existing_provider = await ProviderModel.read_async(db_session=session, identifier=provider_id, actor=actor)
|
||||
existing_provider.api_key = None
|
||||
await existing_provider.update_async(session, actor=actor)
|
||||
|
||||
# Soft delete in provider table
|
||||
await existing_provider.delete_async(session, actor=actor)
|
||||
|
||||
await session.commit()
|
||||
|
||||
@enforce_types
|
||||
@trace_method
|
||||
def list_providers(
|
||||
|
||||
Reference in New Issue
Block a user