fix: enhance error handling in DocumentStatusApi and update timestamp handling in DocumentService for consistency

pull/18148/head
ZeroZ_JQ 1 year ago
parent 92415d32b1
commit 85ccf75dad

@ -824,6 +824,10 @@ class DocumentStatusApi(DocumentResource):
DocumentService.batch_update_document_status(dataset, document_ids, action, current_user) DocumentService.batch_update_document_status(dataset, document_ids, action, current_user)
except services.errors.document.DocumentIndexingError as e: except services.errors.document.DocumentIndexingError as e:
raise InvalidActionError(str(e)) raise InvalidActionError(str(e))
except ValueError as e:
raise InvalidActionError(str(e))
except NotFound as e:
raise NotFound(str(e))
return {"result": "success"}, 200 return {"result": "success"}, 200

@ -433,7 +433,7 @@ class DatasetService:
raise ValueError(ex.description) raise ValueError(ex.description)
filtered_data["updated_by"] = user.id filtered_data["updated_by"] = user.id
filtered_data["updated_at"] = datetime.datetime.now() filtered_data["updated_at"] = datetime.datetime.now(datetime.UTC).replace(tzinfo=None)
# update Retrieval model # update Retrieval model
filtered_data["retrieval_model"] = data["retrieval_model"] filtered_data["retrieval_model"] = data["retrieval_model"]
@ -1609,7 +1609,7 @@ class DocumentService:
document.enabled = True document.enabled = True
document.disabled_at = None document.disabled_at = None
document.disabled_by = None document.disabled_by = None
document.updated_at = datetime.datetime.now() document.updated_at = datetime.datetime.now(datetime.UTC).replace(tzinfo=None)
db.session.commit() db.session.commit()
# Set cache to prevent indexing the same document multiple times # Set cache to prevent indexing the same document multiple times
@ -1624,9 +1624,9 @@ class DocumentService:
continue continue
document.enabled = False document.enabled = False
document.disabled_at = datetime.datetime.now() document.disabled_at = datetime.datetime.now(datetime.UTC).replace(tzinfo=None)
document.disabled_by = user.id document.disabled_by = user.id
document.updated_at = datetime.datetime.now() document.updated_at = datetime.datetime.now(datetime.UTC).replace(tzinfo=None)
db.session.commit() db.session.commit()
# Set cache to prevent indexing the same document multiple times # Set cache to prevent indexing the same document multiple times
@ -1639,9 +1639,9 @@ class DocumentService:
continue continue
document.archived = True document.archived = True
document.archived_at = datetime.datetime.now() document.archived_at = datetime.datetime.now(datetime.UTC).replace(tzinfo=None)
document.archived_by = user.id document.archived_by = user.id
document.updated_at = datetime.datetime.now() document.updated_at = datetime.datetime.now(datetime.UTC).replace(tzinfo=None)
db.session.commit() db.session.commit()
if document.enabled: if document.enabled:
@ -1656,13 +1656,14 @@ class DocumentService:
document.archived = False document.archived = False
document.archived_at = None document.archived_at = None
document.archived_by = None document.archived_by = None
document.updated_at = datetime.datetime.now() document.updated_at = datetime.datetime.now(datetime.UTC).replace(tzinfo=None)
db.session.commit() db.session.commit()
# Set cache to prevent indexing the same document multiple times # Only re-index if the document is currently enabled
redis_client.setex(indexing_cache_key, 600, 1) if document.enabled:
# Set cache to prevent indexing the same document multiple times
add_document_to_index_task.delay(document_id) redis_client.setex(indexing_cache_key, 600, 1)
add_document_to_index_task.delay(document_id)
else: else:
raise ValueError(f"Invalid action: {action}") raise ValueError(f"Invalid action: {action}")

Loading…
Cancel
Save