sync: migrate secure-online-shop to Gitea (2026-08-10)

This commit is contained in:
konturai-ops
2026-08-10 15:26:59 +00:00
commit 2022c8890d
44 changed files with 3196 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
from __future__ import annotations
import logging
from datetime import datetime, timezone
from sqlalchemy.orm import Session
from app.core.exceptions import BadRequestError
from app.models.order import Order, OrderStatusEnum
from app.models.user import User
from app.services.order_service import OrderService
audit_logger = logging.getLogger("app.audit")
class PaymentService:
def __init__(self, db: Session) -> None:
self.db = db
self.order_service = OrderService(db)
def confirm_payment(self, order_id: int, user: User) -> Order:
order = self.order_service.get_order_for_user(order_id, user)
if order.status != OrderStatusEnum.pending:
raise BadRequestError("This order is not eligible for payment")
try:
order.status = OrderStatusEnum.paid
order.paid_at = datetime.now(timezone.utc)
self.db.commit()
except Exception:
self.db.rollback()
raise
audit_logger.info(
"payment_confirmed order_id=%s user_id=%s total_amount=%s",
order.id,
user.id,
str(order.total_amount),
)
return self.order_service.get_order_for_user(order.id, user)