|
|
|
@@ -228,6 +228,8 @@ def delete(tenant_id): |
|
|
|
schema: |
|
|
|
type: object |
|
|
|
""" |
|
|
|
errors = [] |
|
|
|
success_count = 0 |
|
|
|
req = request.json |
|
|
|
if not req: |
|
|
|
ids = None |
|
|
|
@@ -243,12 +245,12 @@ def delete(tenant_id): |
|
|
|
for id in id_list: |
|
|
|
kbs = KnowledgebaseService.query(id=id, tenant_id=tenant_id) |
|
|
|
if not kbs: |
|
|
|
return get_error_data_result(message=f"You don't own the dataset {id}") |
|
|
|
errors.append(f"You don't own the dataset {id}") |
|
|
|
continue |
|
|
|
for doc in DocumentService.query(kb_id=id): |
|
|
|
if not DocumentService.remove_document(doc, tenant_id): |
|
|
|
return get_error_data_result( |
|
|
|
message="Remove document error.(Database error)" |
|
|
|
) |
|
|
|
errors.append(f"Remove document error for dataset {id}") |
|
|
|
continue |
|
|
|
f2d = File2DocumentService.get_by_document_id(doc.id) |
|
|
|
FileService.filter_delete( |
|
|
|
[ |
|
|
|
@@ -260,7 +262,17 @@ def delete(tenant_id): |
|
|
|
FileService.filter_delete( |
|
|
|
[File.source_type == FileSource.KNOWLEDGEBASE, File.type == "folder", File.name == kbs[0].name]) |
|
|
|
if not KnowledgebaseService.delete_by_id(id): |
|
|
|
return get_error_data_result(message="Delete dataset error.(Database error)") |
|
|
|
errors.append(f"Delete dataset error for {id}") |
|
|
|
continue |
|
|
|
success_count += 1 |
|
|
|
if errors: |
|
|
|
if success_count > 0: |
|
|
|
return get_result( |
|
|
|
data={"success_count": success_count, "errors": errors}, |
|
|
|
message=f"Partially deleted {success_count} datasets with {len(errors)} errors" |
|
|
|
) |
|
|
|
else: |
|
|
|
return get_error_data_result(message="; ".join(errors)) |
|
|
|
return get_result(code=settings.RetCode.SUCCESS) |
|
|
|
|
|
|
|
|