feat: Add delete group endpoint (#132)
* feat: Add delete group endpoint * chore: Version bump * chore: improve not found error handling
This commit is contained in:
parent
02ff178769
commit
d8c49c1c0a
3 changed files with 23 additions and 1 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
[tool.poetry]
|
[tool.poetry]
|
||||||
name = "graphiti-core"
|
name = "graphiti-core"
|
||||||
version = "0.3.3"
|
version = "0.3.4"
|
||||||
description = "A temporal graph building library"
|
description = "A temporal graph building library"
|
||||||
authors = [
|
authors = [
|
||||||
"Paul Paliychuk <paul@getzep.com>",
|
"Paul Paliychuk <paul@getzep.com>",
|
||||||
|
|
|
||||||
|
|
@ -90,6 +90,12 @@ async def delete_entity_edge(uuid: str, graphiti: ZepGraphitiDep):
|
||||||
return Result(message='Entity Edge deleted', success=True)
|
return Result(message='Entity Edge deleted', success=True)
|
||||||
|
|
||||||
|
|
||||||
|
@router.delete('/group/{group_id}', status_code=status.HTTP_200_OK)
|
||||||
|
async def delete_group(group_id: str, graphiti: ZepGraphitiDep):
|
||||||
|
await graphiti.delete_group(group_id)
|
||||||
|
return Result(message='Group deleted', success=True)
|
||||||
|
|
||||||
|
|
||||||
@router.delete('/episode/{uuid}', status_code=status.HTTP_200_OK)
|
@router.delete('/episode/{uuid}', status_code=status.HTTP_200_OK)
|
||||||
async def delete_episode(uuid: str, graphiti: ZepGraphitiDep):
|
async def delete_episode(uuid: str, graphiti: ZepGraphitiDep):
|
||||||
await graphiti.delete_episodic_node(uuid)
|
await graphiti.delete_episodic_node(uuid)
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,22 @@ class ZepGraphiti(Graphiti):
|
||||||
except EdgeNotFoundError as e:
|
except EdgeNotFoundError as e:
|
||||||
raise HTTPException(status_code=404, detail=e.message) from e
|
raise HTTPException(status_code=404, detail=e.message) from e
|
||||||
|
|
||||||
|
async def delete_group(self, group_id: str):
|
||||||
|
try:
|
||||||
|
edges = await EntityEdge.get_by_group_ids(self.driver, [group_id])
|
||||||
|
nodes = await EntityNode.get_by_group_ids(self.driver, [group_id])
|
||||||
|
episodes = await EpisodicNode.get_by_group_ids(self.driver, [group_id])
|
||||||
|
for edge in edges:
|
||||||
|
await edge.delete(self.driver)
|
||||||
|
for node in nodes:
|
||||||
|
await node.delete(self.driver)
|
||||||
|
for episode in episodes:
|
||||||
|
await episode.delete(self.driver)
|
||||||
|
except EdgeNotFoundError as e:
|
||||||
|
raise HTTPException(status_code=404, detail=e.message) from e
|
||||||
|
except NodeNotFoundError as e:
|
||||||
|
raise HTTPException(status_code=404, detail=e.message) from e
|
||||||
|
|
||||||
async def delete_entity_edge(self, uuid: str):
|
async def delete_entity_edge(self, uuid: str):
|
||||||
try:
|
try:
|
||||||
edge = await EntityEdge.get_by_uuid(self.driver, uuid)
|
edge = await EntityEdge.get_by_uuid(self.driver, uuid)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue