diff --git a/src/backend/core/api/serializers.py b/src/backend/core/api/serializers.py index 464e8542..f8dbb22d 100644 --- a/src/backend/core/api/serializers.py +++ b/src/backend/core/api/serializers.py @@ -275,7 +275,7 @@ class ServerCreateDocumentSerializer(serializers.Serializer): language = user.language or language try: - converter_response = YdocConverter().convert_markdown( + document_content = YdocConverter().convert_markdown( validated_data["content"] ) except ConversionError as err: @@ -283,7 +283,7 @@ class ServerCreateDocumentSerializer(serializers.Serializer): document = models.Document.objects.create( title=validated_data["title"], - content=converter_response["content"], + content=document_content, creator=user, ) diff --git a/src/backend/core/services/converter_services.py b/src/backend/core/services/converter_services.py index 6ca01a3d..89f47e65 100644 --- a/src/backend/core/services/converter_services.py +++ b/src/backend/core/services/converter_services.py @@ -31,7 +31,7 @@ class YdocConverter: @property def auth_header(self): """Build microservice authentication header.""" - return f"Bearer {settings.CONVERSION_API_KEY}" + return settings.CONVERSION_API_KEY def convert_markdown(self, text): """Convert a Markdown text into our internal format using an external microservice.""" @@ -50,6 +50,7 @@ class YdocConverter: "Content-Type": "application/json", }, timeout=settings.CONVERSION_API_TIMEOUT, + verify=settings.CONVERSION_API_SECURE, ) response.raise_for_status() conversion_response = response.json() diff --git a/src/backend/core/tests/documents/test_api_documents_create_for_owner.py b/src/backend/core/tests/documents/test_api_documents_create_for_owner.py index 6d8909d5..4c66a286 100644 --- a/src/backend/core/tests/documents/test_api_documents_create_for_owner.py +++ b/src/backend/core/tests/documents/test_api_documents_create_for_owner.py @@ -25,7 +25,7 @@ def mock_convert_markdown(): with patch.object( YdocConverter, "convert_markdown", - return_value={"content": "Converted document content"}, + return_value="Converted document content", ) as mock: yield mock diff --git a/src/backend/core/tests/test_services_converter_services.py b/src/backend/core/tests/test_services_converter_services.py index 58500ee4..7911e368 100644 --- a/src/backend/core/tests/test_services_converter_services.py +++ b/src/backend/core/tests/test_services_converter_services.py @@ -18,7 +18,7 @@ def test_auth_header(settings): """Test authentication header generation.""" settings.CONVERSION_API_KEY = "test-key" converter = YdocConverter() - assert converter.auth_header == "Bearer test-key" + assert converter.auth_header == "test-key" def test_convert_markdown_empty_text(): @@ -116,10 +116,11 @@ def test_convert_markdown_full_integration(mock_post, settings): "http://test.com", json={"content": "test markdown"}, headers={ - "Authorization": "Bearer test-key", + "Authorization": "test-key", "Content-Type": "application/json", }, timeout=5, + verify=False, ) diff --git a/src/backend/impress/settings.py b/src/backend/impress/settings.py index 944c045a..e403b148 100755 --- a/src/backend/impress/settings.py +++ b/src/backend/impress/settings.py @@ -524,6 +524,11 @@ class Base(Configuration): environ_name="CONVERSION_API_TIMEOUT", environ_prefix=None, ) + CONVERSION_API_SECURE = values.Value( + default=False, + environ_name="CONVERSION_API_SECURE", + environ_prefix=None, + ) # Logging # We want to make it easy to log to console but by default we log production