- Furter refinement of the API, adding functionality for refreshing documents and returning Token expiration time when retrieving token

- Implementation of a first version of a Wordpress plugin
- Adding api service to nginx.conf
This commit is contained in:
Josako
2024-09-11 16:31:13 +02:00
parent 76cb825660
commit 9e14824249
17 changed files with 997 additions and 19 deletions

View File

@@ -282,15 +282,22 @@ def edit_document_version(version_id, user_context):
return None, str(e)
def refresh_document(doc_id):
def refresh_document_with_info(doc_id, api_input):
doc = Document.query.get_or_404(doc_id)
doc_vers = DocumentVersion.query.filter_by(doc_id=doc_id).order_by(desc(DocumentVersion.id)).first()
old_doc_vers = DocumentVersion.query.filter_by(doc_id=doc_id).order_by(desc(DocumentVersion.id)).first()
if not doc_vers.url:
return None, f"This document {doc_id} has no URL. Only documents with a URL can be refreshed."
if not old_doc_vers.url:
return None, "This document has no URL. Only documents with a URL can be refreshed."
new_doc_vers = create_version_for_document(doc, doc_vers.url, doc_vers.language, doc_vers.user_context,
doc_vers.user_metadata)
new_doc_vers = create_version_for_document(
doc,
old_doc_vers.url,
api_input.get('language', old_doc_vers.language),
api_input.get('user_context', old_doc_vers.user_context),
api_input.get('user_metadata', old_doc_vers.user_metadata)
)
set_logging_information(new_doc_vers, dt.now(tz.utc))
try:
db.session.add(new_doc_vers)
@@ -299,14 +306,11 @@ def refresh_document(doc_id):
db.session.rollback()
return None, str(e)
response = requests.head(doc_vers.url, allow_redirects=True)
response = requests.head(old_doc_vers.url, allow_redirects=True)
content_type = response.headers.get('Content-Type', '').split(';')[0]
# Determine file extension based on Content-Type
extension = get_extension_from_content_type(content_type)
# Download the content
response = requests.get(doc_vers.url)
response = requests.get(old_doc_vers.url)
response.raise_for_status()
file_content = response.content
@@ -318,3 +322,17 @@ def refresh_document(doc_id):
])
return new_doc_vers, task.id
# Update the existing refresh_document function to use the new refresh_document_with_info
def refresh_document(doc_id):
doc = Document.query.get_or_404(doc_id)
old_doc_vers = DocumentVersion.query.filter_by(doc_id=doc_id).order_by(desc(DocumentVersion.id)).first()
api_input = {
'language': old_doc_vers.language,
'user_context': old_doc_vers.user_context,
'user_metadata': old_doc_vers.user_metadata
}
return refresh_document_with_info(doc_id, api_input)