Add miniapp purchase link support
This commit is contained in:
@@ -24,6 +24,8 @@ from app.utils.telegram_webapp import (
|
||||
|
||||
from ..dependencies import get_db_session
|
||||
from ..schemas.miniapp import (
|
||||
MiniAppBranding,
|
||||
MiniAppConfigResponse,
|
||||
MiniAppConnectedServer,
|
||||
MiniAppDevice,
|
||||
MiniAppPromoGroup,
|
||||
@@ -258,6 +260,16 @@ async def _load_subscription_links(
|
||||
return payload
|
||||
|
||||
|
||||
@router.get("/config", response_model=MiniAppConfigResponse)
|
||||
async def get_miniapp_config() -> MiniAppConfigResponse:
|
||||
branding_data = settings.get_miniapp_branding()
|
||||
branding = MiniAppBranding(**branding_data) if branding_data else None
|
||||
return MiniAppConfigResponse(
|
||||
branding=branding,
|
||||
subscription_purchase_url=settings.get_miniapp_purchase_url(),
|
||||
)
|
||||
|
||||
|
||||
@router.post("/subscription", response_model=MiniAppSubscriptionResponse)
|
||||
async def get_subscription_details(
|
||||
payload: MiniAppSubscriptionRequest,
|
||||
@@ -383,6 +395,7 @@ async def get_subscription_details(
|
||||
else None,
|
||||
subscription_type="trial" if subscription.is_trial else "paid",
|
||||
autopay_enabled=bool(subscription.autopay_enabled),
|
||||
subscription_purchase_url=settings.get_miniapp_purchase_url(),
|
||||
branding=settings.get_miniapp_branding(),
|
||||
)
|
||||
|
||||
|
||||
@@ -11,6 +11,11 @@ class MiniAppBranding(BaseModel):
|
||||
service_description: Dict[str, Optional[str]] = Field(default_factory=dict)
|
||||
|
||||
|
||||
class MiniAppConfigResponse(BaseModel):
|
||||
branding: Optional[MiniAppBranding] = None
|
||||
subscription_purchase_url: Optional[str] = None
|
||||
|
||||
|
||||
class MiniAppSubscriptionRequest(BaseModel):
|
||||
init_data: str = Field(..., alias="initData")
|
||||
|
||||
@@ -74,6 +79,7 @@ class MiniAppSubscriptionResponse(BaseModel):
|
||||
user: MiniAppSubscriptionUser
|
||||
subscription_url: Optional[str] = None
|
||||
subscription_crypto_link: Optional[str] = None
|
||||
subscription_purchase_url: Optional[str] = None
|
||||
links: List[str] = Field(default_factory=list)
|
||||
ss_conf_links: Dict[str, str] = Field(default_factory=dict)
|
||||
connected_squads: List[str] = Field(default_factory=list)
|
||||
|
||||
Reference in New Issue
Block a user