30 lines
871 B
Python
30 lines
871 B
Python
from __future__ import annotations
|
|
|
|
from typing import Annotated
|
|
|
|
from fastapi import APIRouter, Depends, status
|
|
from sqlalchemy.orm import Session
|
|
|
|
from app.api.dependencies import get_current_user
|
|
from app.db.session import get_db
|
|
from app.models.user import User
|
|
from app.schemas.payment import PaymentResponse
|
|
from app.services.payment_service import PaymentService
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.post(
|
|
"/orders/{order_id}/confirm",
|
|
response_model=PaymentResponse,
|
|
status_code=status.HTTP_200_OK,
|
|
summary="Mock payment confirmation for an owned order",
|
|
)
|
|
def confirm_order_payment(
|
|
order_id: int,
|
|
db: Annotated[Session, Depends(get_db)],
|
|
current_user: Annotated[User, Depends(get_current_user)],
|
|
) -> PaymentResponse:
|
|
order = PaymentService(db).confirm_payment(order_id, current_user)
|
|
return PaymentResponse.model_validate(order)
|