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)
except services.errors.document.DocumentIndexingError as 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

@ -433,7 +433,7 @@ class DatasetService:
raise ValueError(ex.description)
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
filtered_data["retrieval_model"] = data["retrieval_model"]
@ -1609,7 +1609,7 @@ class DocumentService:
document.enabled = True
document.disabled_at = 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()
# Set cache to prevent indexing the same document multiple times
@ -1624,9 +1624,9 @@ class DocumentService:
continue
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.updated_at = datetime.datetime.now()
document.updated_at = datetime.datetime.now(datetime.UTC).replace(tzinfo=None)
db.session.commit()
# Set cache to prevent indexing the same document multiple times
@ -1639,9 +1639,9 @@ class DocumentService:
continue
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.updated_at = datetime.datetime.now()
document.updated_at = datetime.datetime.now(datetime.UTC).replace(tzinfo=None)
db.session.commit()
if document.enabled:
@ -1656,12 +1656,13 @@ class DocumentService:
document.archived = False
document.archived_at = 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()
# Only re-index if the document is currently enabled
if document.enabled:
# Set cache to prevent indexing the same document multiple times
redis_client.setex(indexing_cache_key, 600, 1)
add_document_to_index_task.delay(document_id)
else:

Loading…
Cancel
Save