Добавлен CI, добавлена отправка письма о получении оплаты, добавлен order_id в success_url
Deploy / deploy (push) Successful in 1m0s
Deploy / deploy (push) Successful in 1m0s
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
"""Delivery API controller skeleton."""
|
||||
|
||||
import structlog
|
||||
from fastapi import APIRouter, Depends, HTTPException, Request, status
|
||||
from fastapi.responses import PlainTextResponse
|
||||
|
||||
@@ -10,6 +11,7 @@ from app.adapters.address_suggestions.yandex_geosuggest import (
|
||||
YandexGeosuggestAddressSuggestionProvider,
|
||||
)
|
||||
from app.adapters.delivery_providers.cdek import CDEKProvider
|
||||
from app.adapters.email import SMTPEmailSender
|
||||
from app.adapters.tbank import TBankAdapter
|
||||
from app.config import Settings
|
||||
from app.controllers.http_client import build_controller_http_client
|
||||
@@ -35,6 +37,8 @@ from app.services.aggregator import (
|
||||
UnsupportedAddressSuggestionCountryError,
|
||||
)
|
||||
|
||||
logger = structlog.get_logger(__name__)
|
||||
|
||||
router = APIRouter(prefix="/delivery", tags=["delivery"])
|
||||
|
||||
|
||||
@@ -70,6 +74,15 @@ def _build_aggregator_service(settings: Settings) -> AggregatorService:
|
||||
postgres_engine = create_postgres_engine(settings.postgres)
|
||||
postgres_session_factory = create_postgres_session_factory(postgres_engine)
|
||||
order_repository = OrderRepository(session_factory=postgres_session_factory)
|
||||
email_sender = SMTPEmailSender(
|
||||
smtp_host=settings.email.smtp_host,
|
||||
smtp_port=settings.email.smtp_port,
|
||||
username=settings.email.username,
|
||||
password=settings.email.password,
|
||||
from_address=settings.email.from_address,
|
||||
use_tls=settings.email.use_tls,
|
||||
timeout_seconds=settings.email.timeout_seconds,
|
||||
)
|
||||
service = AggregatorService(
|
||||
providers=providers,
|
||||
cache=cache,
|
||||
@@ -77,6 +90,7 @@ def _build_aggregator_service(settings: Settings) -> AggregatorService:
|
||||
payment_price_validation_adapter=cdek_provider,
|
||||
order_repository=order_repository,
|
||||
order_registration_adapter=cdek_provider,
|
||||
email_sender=email_sender,
|
||||
address_suggestion_providers=(
|
||||
dadata_provider,
|
||||
yandex_geosuggest_provider,
|
||||
@@ -138,6 +152,13 @@ async def suggest_addresses(
|
||||
address_request: AddressSuggestRequest,
|
||||
service: AggregatorService = Depends(get_aggregator_service),
|
||||
) -> list[AddressSuggestion]:
|
||||
logger.info(
|
||||
"suggest_address_requested",
|
||||
country_code=address_request.country_code,
|
||||
city=address_request.city,
|
||||
query=address_request.query,
|
||||
limit=address_request.limit,
|
||||
)
|
||||
try:
|
||||
return await service.suggest_addresses(address_request)
|
||||
except UnsupportedAddressSuggestionCountryError as exc:
|
||||
|
||||
Reference in New Issue
Block a user