mirror of
https://github.com/remnawave/python-sdk.git
synced 2026-08-03 22:25:14 +00:00
- Bump version to 2.4.4 and update description in pyproject.toml - Refactor RemnawaveSDK to include SubscriptionPageConfigController - Introduce new subscription page management endpoints: - Get, create, update, delete, reorder, and clone subscription page configs - Remove deprecated NodesUsageHistoryController and UsersStatsController - Add new bandwidth stats models and endpoints for legacy and new stats - Enhance tests for bandwidth stats and subscription page management - Ensure backward compatibility with legacy endpoints while introducing new stats models
73 lines
No EOL
2.9 KiB
Python
73 lines
No EOL
2.9 KiB
Python
from typing import Annotated
|
|
|
|
from rapid_api_client.annotations import Path, PydanticBody
|
|
|
|
from remnawave.models import (
|
|
CloneSubscriptionPageConfigRequestDto,
|
|
CloneSubscriptionPageConfigResponseDto,
|
|
CreateSubscriptionPageConfigRequestDto,
|
|
CreateSubscriptionPageConfigResponseDto,
|
|
DeleteSubscriptionPageConfigResponseDto,
|
|
GetSubscriptionPageConfigResponseDto,
|
|
GetSubscriptionPageConfigsResponseDto,
|
|
ReorderSubscriptionPageConfigsRequestDto,
|
|
ReorderSubscriptionPageConfigsResponseDto,
|
|
UpdateSubscriptionPageConfigRequestDto,
|
|
UpdateSubscriptionPageConfigResponseDto,
|
|
)
|
|
from remnawave.rapid import BaseController, delete, get, patch, post
|
|
|
|
|
|
class SubscriptionPageConfigController(BaseController):
|
|
@get("/subscription-page-configs", response_class=GetSubscriptionPageConfigsResponseDto)
|
|
async def get_all_configs(self) -> GetSubscriptionPageConfigsResponseDto:
|
|
"""Get all subscription page configs"""
|
|
...
|
|
|
|
@post("/subscription-page-configs", response_class=CreateSubscriptionPageConfigResponseDto)
|
|
async def create_config(
|
|
self,
|
|
body: Annotated[CreateSubscriptionPageConfigRequestDto, PydanticBody()],
|
|
) -> CreateSubscriptionPageConfigResponseDto:
|
|
"""Create subscription page config"""
|
|
...
|
|
|
|
@patch("/subscription-page-configs", response_class=UpdateSubscriptionPageConfigResponseDto)
|
|
async def update_config(
|
|
self,
|
|
body: Annotated[UpdateSubscriptionPageConfigRequestDto, PydanticBody()],
|
|
) -> UpdateSubscriptionPageConfigResponseDto:
|
|
"""Update subscription page config"""
|
|
...
|
|
|
|
@get("/subscription-page-configs/{uuid}", response_class=GetSubscriptionPageConfigResponseDto)
|
|
async def get_config_by_uuid(
|
|
self,
|
|
uuid: Annotated[str, Path(description="Subscription page config UUID")],
|
|
) -> GetSubscriptionPageConfigResponseDto:
|
|
"""Get subscription page config by uuid"""
|
|
...
|
|
|
|
@delete("/subscription-page-configs/{uuid}", response_class=DeleteSubscriptionPageConfigResponseDto)
|
|
async def delete_config(
|
|
self,
|
|
uuid: Annotated[str, Path(description="Subscription page config UUID")],
|
|
) -> DeleteSubscriptionPageConfigResponseDto:
|
|
"""Delete subscription page config"""
|
|
...
|
|
|
|
@post("/subscription-page-configs/actions/reorder", response_class=ReorderSubscriptionPageConfigsResponseDto)
|
|
async def reorder_configs(
|
|
self,
|
|
body: Annotated[ReorderSubscriptionPageConfigsRequestDto, PydanticBody()],
|
|
) -> ReorderSubscriptionPageConfigsResponseDto:
|
|
"""Reorder subscription page configs"""
|
|
...
|
|
|
|
@post("/subscription-page-configs/actions/clone", response_class=CloneSubscriptionPageConfigResponseDto)
|
|
async def clone_config(
|
|
self,
|
|
body: Annotated[CloneSubscriptionPageConfigRequestDto, PydanticBody()],
|
|
) -> CloneSubscriptionPageConfigResponseDto:
|
|
"""Clone subscription page config"""
|
|
... |