Files
eryao/backend/src/v1/payments/dependencies.py
T

35 lines
1.1 KiB
Python
Raw Normal View History

from __future__ import annotations
from fastapi import Depends
from sqlalchemy.ext.asyncio import AsyncSession
from core.db import get_db
from v1.payments.apple_verifier import AppleJwsVerifier
from v1.payments.creem_client import CreemClient
from v1.payments.creem_service import CreemService
from v1.payments.repository import PaymentRepository
from v1.payments.service import PaymentService
from v1.points.repository import PointsRepository
def get_payment_service(session: AsyncSession = Depends(get_db)) -> PaymentService:
payment_repo = PaymentRepository(session)
points_repo = PointsRepository(session)
verifier = AppleJwsVerifier()
return PaymentService(
payment_repo=payment_repo,
points_repo=points_repo,
verifier=verifier,
)
def get_creem_service(session: AsyncSession = Depends(get_db)) -> CreemService:
payment_repo = PaymentRepository(session)
points_repo = PointsRepository(session)
client = CreemClient()
return CreemService(
payment_repo=payment_repo,
points_repo=points_repo,
client=client,
)