add router for get last donats for tips
This commit is contained in:
parent
4df2c34889
commit
e87c1e5718
@ -1,10 +1,13 @@
|
|||||||
from typing import Literal, Annotated
|
from typing import Literal, Annotated
|
||||||
|
|
||||||
from fastapi import APIRouter, Depends
|
from fastapi import APIRouter, Depends
|
||||||
|
from fastapi.security import HTTPAuthorizationCredentials
|
||||||
|
from pydantic import PositiveInt
|
||||||
|
|
||||||
from src.core.api_tips_integrate.constants import DONATES_SUM_PERIODS
|
from src.core.api_tips_integrate.constants import DONATES_SUM_PERIODS
|
||||||
from src.core.api_tips_integrate.schemas import CreateTipSchema
|
from src.core.api_tips_integrate.schemas import CreateTipSchema
|
||||||
from src.core.api_tips_integrate.service import create_payment_link_for_tip_service
|
from src.core.api_tips_integrate.service import create_payment_link_for_tip_service, \
|
||||||
|
create_payment_link_for_donate_service
|
||||||
from src.core.common.dependencies import http_bearer, data_from_token
|
from src.core.common.dependencies import http_bearer, data_from_token
|
||||||
from src.core.common.schemas import TokenPayloadSchema, PaymentLinkSchema
|
from src.core.common.schemas import TokenPayloadSchema, PaymentLinkSchema
|
||||||
|
|
||||||
@ -17,9 +20,15 @@ router = APIRouter(
|
|||||||
path="/last-payments"
|
path="/last-payments"
|
||||||
)
|
)
|
||||||
async def get_last_donates(
|
async def get_last_donates(
|
||||||
token: Annotated[str, Depends(http_bearer)],
|
token: Annotated[HTTPAuthorizationCredentials, Depends(http_bearer)],
|
||||||
|
page: PositiveInt = 1,
|
||||||
|
limit: PositiveInt = 100,
|
||||||
):
|
):
|
||||||
pass
|
return await create_payment_link_for_donate_service(
|
||||||
|
token=token.credentials,
|
||||||
|
page=page,
|
||||||
|
limit=limit,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@router.get(
|
@router.get(
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
from datetime import datetime
|
||||||
|
|
||||||
from pydantic import Field, BaseModel
|
from pydantic import Field, BaseModel
|
||||||
|
|
||||||
|
|
||||||
@ -14,4 +16,24 @@ class CreateTipSchema(BaseModel):
|
|||||||
from_user: str | None = Field(
|
from_user: str | None = Field(
|
||||||
default=None,
|
default=None,
|
||||||
description="User who sent the tip",
|
description="User who sent the tip",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class DonationSchema(BaseModel):
|
||||||
|
id: int
|
||||||
|
widget_id: int
|
||||||
|
order_id: str = Field(..., alias="order_id")
|
||||||
|
status: str
|
||||||
|
text: str
|
||||||
|
amount: float
|
||||||
|
donat_user: str = Field(..., alias="donat_user")
|
||||||
|
accepted_time: datetime
|
||||||
|
show_name: bool
|
||||||
|
show_text: bool
|
||||||
|
play_content: bool
|
||||||
|
showed_time: datetime
|
||||||
|
paid_time: datetime
|
||||||
|
|
||||||
|
|
||||||
|
class AllDonatesSchema(BaseModel):
|
||||||
|
donates: list[DonationSchema]
|
@ -1,6 +1,6 @@
|
|||||||
import httpx
|
import httpx
|
||||||
|
|
||||||
from src.core.api_tips_integrate.schemas import CreateTipSchema
|
from src.core.api_tips_integrate.schemas import CreateTipSchema, AllDonatesSchema, DonationSchema
|
||||||
from src.core.common.constants import DH_ACCOUNTS_API_URL, DH_WIDGETS_API_URL
|
from src.core.common.constants import DH_ACCOUNTS_API_URL, DH_WIDGETS_API_URL
|
||||||
from src.core.common.schemas import TokenPayloadSchema, UserInfoSchema, PaymentLinkSchema
|
from src.core.common.schemas import TokenPayloadSchema, UserInfoSchema, PaymentLinkSchema
|
||||||
|
|
||||||
@ -48,8 +48,6 @@ async def create_payment_link_for_tip_service(
|
|||||||
return payment_link_schema
|
return payment_link_schema
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
async def get_last_donates_by_login():
|
async def get_last_donates_by_login():
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@ -58,5 +56,30 @@ async def get_summary_donates_for_period():
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
async def create_payment_link_for_donate():
|
async def create_payment_link_for_donate_service(
|
||||||
pass
|
token: str,
|
||||||
|
page: int = 1,
|
||||||
|
limit: int = 10,
|
||||||
|
) -> AllDonatesSchema:
|
||||||
|
headers = {
|
||||||
|
"accept": "application/json",
|
||||||
|
"Authorization": f"Bearer {token}"
|
||||||
|
}
|
||||||
|
|
||||||
|
params = {
|
||||||
|
"page": page,
|
||||||
|
"limit": limit
|
||||||
|
}
|
||||||
|
|
||||||
|
async with httpx.AsyncClient() as client:
|
||||||
|
response = await client.get(
|
||||||
|
url=DH_WIDGETS_API_URL + "donat",
|
||||||
|
headers=headers,
|
||||||
|
params=params
|
||||||
|
)
|
||||||
|
response.raise_for_status()
|
||||||
|
data = response.json()
|
||||||
|
|
||||||
|
return AllDonatesSchema(
|
||||||
|
donates=[DonationSchema(**item) for item in data]
|
||||||
|
)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
from typing import Annotated
|
from typing import Annotated
|
||||||
|
|
||||||
from fastapi import Depends
|
from fastapi import Depends
|
||||||
from fastapi.security import HTTPBearer
|
from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials
|
||||||
|
|
||||||
from src.core.common.jwt import decode_token_from_base64
|
from src.core.common.jwt import decode_token_from_base64
|
||||||
from src.core.common.schemas import TokenPayloadSchema
|
from src.core.common.schemas import TokenPayloadSchema
|
||||||
@ -11,7 +11,7 @@ http_bearer = HTTPBearer()
|
|||||||
|
|
||||||
|
|
||||||
async def data_from_token(
|
async def data_from_token(
|
||||||
token: Annotated[str, Depends(http_bearer)]
|
token: Annotated[HTTPAuthorizationCredentials, Depends(http_bearer)]
|
||||||
) -> TokenPayloadSchema:
|
) -> TokenPayloadSchema:
|
||||||
return decode_token_from_base64(
|
return decode_token_from_base64(
|
||||||
token=token,
|
token=token,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user