Skip to content

Commit 90e1c00

Browse files
updated review comments
1 parent 747705b commit 90e1c00

2 files changed

Lines changed: 20 additions & 13 deletions

File tree

src/sap_cloud_sdk/outputmanagement/clients/email_client.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,24 @@
11
"""Email client for simplified email sending via SAP Ariba Output Service."""
22

3-
from typing import Optional, List, Dict, Any
3+
import logging
4+
from typing import Optional, List, Dict, Any, TYPE_CHECKING
5+
46
from ..models.output_request import OutputRequest
57
from ..models.output_request_data import OutputRequestData
68
from ..models.output_management_info import OutputManagementInfo
79
from ..models.email_configuration import EmailConfiguration
810
from ..models.output_response import OutputResponse, ErrorResponse
11+
from ..models.attachment_config import AttachmentConfig
12+
from ..models.pre_generated_attachment import PreGeneratedAttachment
913
from ..config.destination_credential_config import DestinationCredentialConfig
1014
from ..constants import Channel
1115
from ..utils.request_validator import RequestValidator
1216

17+
if TYPE_CHECKING:
18+
from ..client_provider import OutputManagementServiceClientProviderBuilder
19+
20+
logger = logging.getLogger(__name__)
21+
1322

1423
class EmailClient:
1524
"""
@@ -67,9 +76,6 @@ def create_output_request(
6776
# Build attachment config if URLs are provided
6877
attachment_config = None
6978
if attachment_urls:
70-
from ..models.attachment_config import AttachmentConfig
71-
from ..models.pre_generated_attachment import PreGeneratedAttachment
72-
7379
# Convert URLs to PreGeneratedAttachment objects
7480
pre_gen_attachments = [
7581
PreGeneratedAttachment(url=url, source="DMS")
@@ -217,10 +223,8 @@ def send_email(
217223
)
218224

219225
try:
220-
# Import here to avoid circular import at module initialization
226+
# Import here to avoid circular import (client.py -> email_client.py -> client_provider.py -> client.py)
221227
from ..client_provider import OutputManagementServiceClientProviderBuilder
222-
import logging
223-
logger = logging.getLogger(__name__)
224228

225229
# Resolve instance name for logging
226230
inst = instance or "default"

src/sap_cloud_sdk/outputmanagement/clients/output_requests_client_impl.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,20 @@
11
"""Implementation of output requests client."""
22

3+
import base64
34
import logging
45
import os
6+
import tempfile
57
import uuid
68
from typing import Dict, Optional
79

810
import requests
9-
from sap_cloud_sdk.destination import Destination
11+
from cryptography.hazmat.primitives.serialization import (
12+
pkcs12,
13+
Encoding,
14+
PrivateFormat,
15+
NoEncryption,
16+
)
17+
from sap_cloud_sdk.destination import Destination, create_certificate_client, AccessStrategy
1018

1119
from .output_requests_client import OutputRequestsClient
1220
from ..constants import Constants
@@ -181,11 +189,6 @@ def _fetch_oauth_token_from_destination(self) -> Optional[str]:
181189

182190
# Get certificate from Cloud SDK Destination Service
183191
try:
184-
from sap_cloud_sdk.destination import create_certificate_client, AccessStrategy
185-
import tempfile
186-
import base64
187-
from cryptography.hazmat.primitives.serialization import pkcs12, Encoding, PrivateFormat, NoEncryption
188-
189192
# Resolve instance name: use provided value or default to "default" (following DMS pattern)
190193
inst = self._destination_instance or "default"
191194
logger.info(f"✓ Creating certificate client for instance '{inst}'")

0 commit comments

Comments
 (0)