Remnawave_python-sdk/remnawave/controllers/subscriptions_template.py
Artem 9e2822774a
feat: Enhance subscription and external squad management
- Updated NodeUsageDto to include node_uuid and changed date to datetime.
- Changed total fields in subscription and subscription request history models from float to int.
- Introduced response rules and conditions for subscription settings, including new models for response modifications.
- Added external squads management with CRUD operations and associated models.
- Implemented passkey management with registration and verification endpoints.
- Enhanced snippets management with full CRUD operations and validation.
- Added OAuth2 provider enum for better authentication handling.
2025-10-28 00:44:15 +01:00

54 lines
No EOL
1.9 KiB
Python

from typing import Annotated
from rapid_api_client.annotations import Path, PydanticBody
from remnawave.enums import TemplateType
from remnawave.models import (
CreateSubscriptionTemplateRequestDto,
CreateSubscriptionTemplateResponseDto,
DeleteSubscriptionTemplateResponseDto,
GetTemplateResponseDto,
GetTemplatesResponseDto,
UpdateTemplateRequestDto,
UpdateTemplateResponseDto,
)
from remnawave.rapid import BaseController, delete, get, patch, post
class SubscriptionsTemplateController(BaseController):
@get("/subscription-templates", response_class=GetTemplatesResponseDto)
async def get_all_templates(self) -> GetTemplatesResponseDto:
"""Get all subscription templates (without content)"""
...
@post("/subscription-templates", response_class=CreateSubscriptionTemplateResponseDto)
async def create_template(
self,
body: Annotated[CreateSubscriptionTemplateRequestDto, PydanticBody()],
) -> CreateSubscriptionTemplateResponseDto:
"""Create subscription template"""
...
@patch("/subscription-templates", response_class=UpdateTemplateResponseDto)
async def update_template(
self,
body: Annotated[UpdateTemplateRequestDto, PydanticBody()],
) -> UpdateTemplateResponseDto:
"""Update subscription template"""
...
@get("/subscription-templates/{uuid}", response_class=GetTemplateResponseDto)
async def get_template_by_uuid(
self,
uuid: Annotated[str, Path(description="Template UUID")],
) -> GetTemplateResponseDto:
"""Get subscription template by uuid"""
...
@delete("/subscription-templates/{uuid}", response_class=DeleteSubscriptionTemplateResponseDto)
async def delete_template(
self,
uuid: Annotated[str, Path(description="Template UUID")],
) -> DeleteSubscriptionTemplateResponseDto:
"""Delete subscription template"""
...