mirror of
https://github.com/remnawave/python-sdk.git
synced 2026-08-04 06:35:09 +00:00
Add Pydantic models for nodes usage history, subscriptions, and user management
- Implemented models for nodes usage history including NodeInfoDto, GetUserAccessibleNodesResponse, and usage statistics. - Created subscription-related models such as UserSubscription, SubscriptionInfoData, and various response DTOs for subscription information. - Developed models for subscription settings, templates, and system statistics, enhancing the API's capability to manage and retrieve subscription configurations. - Introduced user management models including CreateUserRequestDto, UpdateUserRequestDto, and various response DTOs for user actions. - Added bulk actions for user updates and statistics tracking, improving the efficiency of user management operations. - Established a base controller for handling API requests and responses, along with decorators for HTTP methods to streamline API interactions. - Included utility functions for serialization using orjson for better performance with Pydantic models.
This commit is contained in:
parent
6e90ab89e9
commit
950a7ffab3
85 changed files with 87 additions and 87 deletions
|
|
@ -3,7 +3,7 @@ from typing import Optional
|
|||
|
||||
import httpx
|
||||
|
||||
from remnawave_api.controllers import (
|
||||
from remnawave.controllers import (
|
||||
APITokensManagementController,
|
||||
AuthController,
|
||||
BandWidthStatsController,
|
||||
|
|
@ -4,13 +4,13 @@ from httpx import Response
|
|||
from rapid_api_client import Path
|
||||
from rapid_api_client.annotations import PydanticBody
|
||||
|
||||
from remnawave_api.models import (
|
||||
from remnawave.models import (
|
||||
CreateApiTokenRequestDto,
|
||||
CreateApiTokenResponseDto,
|
||||
DeleteApiTokenResponseDto,
|
||||
FindAllApiTokensResponseDto,
|
||||
)
|
||||
from remnawave_api.rapid import BaseController, delete, get, post
|
||||
from remnawave.rapid import BaseController, delete, get, post
|
||||
|
||||
|
||||
class APITokensManagementController(BaseController):
|
||||
|
|
@ -2,7 +2,7 @@ from typing import Annotated
|
|||
|
||||
from rapid_api_client.annotations import PydanticBody
|
||||
|
||||
from remnawave_api.models import (
|
||||
from remnawave.models import (
|
||||
GetStatusResponseDto,
|
||||
LoginRequestDto,
|
||||
LoginResponseDto,
|
||||
|
|
@ -11,7 +11,7 @@ from remnawave_api.models import (
|
|||
TelegramCallbackRequestDto,
|
||||
TelegramCallbackResponseDto,
|
||||
)
|
||||
from remnawave_api.rapid import BaseController, get, post
|
||||
from remnawave.rapid import BaseController, get, post
|
||||
|
||||
|
||||
class AuthController(BaseController):
|
||||
|
|
@ -2,8 +2,8 @@ from typing import Annotated
|
|||
|
||||
from rapid_api_client import Query
|
||||
|
||||
from remnawave_api.models import GetNodesUsageByRangeResponseDto, GetNodesRealtimeUsageResponseDto
|
||||
from remnawave_api.rapid import BaseController, get
|
||||
from remnawave.models import GetNodesUsageByRangeResponseDto, GetNodesRealtimeUsageResponseDto
|
||||
from remnawave.rapid import BaseController, get
|
||||
|
||||
|
||||
class BandWidthStatsController(BaseController):
|
||||
|
|
@ -3,7 +3,7 @@ from typing import Annotated
|
|||
from rapid_api_client import Path, Query
|
||||
from rapid_api_client.annotations import PydanticBody
|
||||
|
||||
from remnawave_api.models import (
|
||||
from remnawave.models import (
|
||||
CreateConfigProfileRequestDto,
|
||||
CreateConfigProfileResponseDto,
|
||||
DeleteConfigProfileResponseDto,
|
||||
|
|
@ -14,7 +14,7 @@ from remnawave_api.models import (
|
|||
UpdateConfigProfileRequestDto,
|
||||
UpdateConfigProfileResponseDto,
|
||||
)
|
||||
from remnawave_api.rapid import BaseController, delete, get, patch, post
|
||||
from remnawave.rapid import BaseController, delete, get, patch, post
|
||||
|
||||
|
||||
class ConfigProfilesController(BaseController):
|
||||
|
|
@ -3,7 +3,7 @@ from typing import Annotated, List
|
|||
from rapid_api_client import Path
|
||||
from rapid_api_client.annotations import PydanticBody
|
||||
|
||||
from remnawave_api.models import (
|
||||
from remnawave.models import (
|
||||
CreateHostRequestDto,
|
||||
CreateHostResponseDto,
|
||||
DeleteHostResponseDto,
|
||||
|
|
@ -14,7 +14,7 @@ from remnawave_api.models import (
|
|||
UpdateHostRequestDto,
|
||||
UpdateHostResponseDto,
|
||||
)
|
||||
from remnawave_api.rapid import AttributeBody, BaseController, delete, get, post, patch
|
||||
from remnawave.rapid import AttributeBody, BaseController, delete, get, post, patch
|
||||
|
||||
|
||||
class HostsController(BaseController):
|
||||
|
|
@ -3,7 +3,7 @@ from uuid import UUID
|
|||
|
||||
from rapid_api_client import PydanticBody
|
||||
|
||||
from remnawave_api.models import (
|
||||
from remnawave.models import (
|
||||
BulkDeleteHostsResponseDto,
|
||||
BulkDisableHostsResponseDto,
|
||||
BulkEnableHostsResponseDto,
|
||||
|
|
@ -11,7 +11,7 @@ from remnawave_api.models import (
|
|||
SetInboundToManyHostsResponseDto,
|
||||
SetPortToManyHostsResponseDto,
|
||||
)
|
||||
from remnawave_api.rapid import AttributeBody, BaseController, post
|
||||
from remnawave.rapid import AttributeBody, BaseController, post
|
||||
|
||||
|
||||
class HostsBulkActionsController(BaseController):
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
from typing import Annotated
|
||||
from uuid import UUID
|
||||
|
||||
from remnawave_api.models import (
|
||||
from remnawave.models import (
|
||||
CreateUserHwidDeviceResponseDto,
|
||||
DeleteUserHwidDeviceResponseDto,
|
||||
GetUserHwidDevicesResponseDto,
|
||||
|
|
@ -9,7 +9,7 @@ from remnawave_api.models import (
|
|||
HWIDDeleteRequest
|
||||
)
|
||||
from rapid_api_client import Path, PydanticBody
|
||||
from remnawave_api.rapid import AttributeBody, BaseController, post, get
|
||||
from remnawave.rapid import AttributeBody, BaseController, post, get
|
||||
|
||||
|
||||
class HWIDUserController(BaseController):
|
||||
|
|
@ -2,8 +2,8 @@ from typing import Annotated, Optional
|
|||
from uuid import UUID
|
||||
|
||||
from rapid_api_client import Path
|
||||
from remnawave_api.models import GetAllInboundsResponseDto, GetInboundsByProfileUuidResponseDto
|
||||
from remnawave_api.rapid import BaseController, get
|
||||
from remnawave.models import GetAllInboundsResponseDto, GetInboundsByProfileUuidResponseDto
|
||||
from remnawave.rapid import BaseController, get
|
||||
|
||||
|
||||
class InboundsController(BaseController):
|
||||
|
|
@ -1,13 +1,13 @@
|
|||
from typing import Annotated
|
||||
from uuid import UUID
|
||||
|
||||
from remnawave_api.models import (
|
||||
from remnawave.models import (
|
||||
AddInboundToNodesResponseDto,
|
||||
AddInboundToUsersResponseDto,
|
||||
RemoveInboundFromNodesResponseDto,
|
||||
RemoveInboundFromUsersResponseDto,
|
||||
)
|
||||
from remnawave_api.rapid import AttributeBody, BaseController, post
|
||||
from remnawave.rapid import AttributeBody, BaseController, post
|
||||
|
||||
|
||||
class InboundsBulkActionsController(BaseController):
|
||||
|
|
@ -3,7 +3,7 @@ from typing import Annotated
|
|||
from rapid_api_client import Path, Query
|
||||
from rapid_api_client.annotations import PydanticBody
|
||||
|
||||
from remnawave_api.models import (
|
||||
from remnawave.models import (
|
||||
CreateInfraBillingNodeRequestDto,
|
||||
CreateInfraBillingNodeResponseDto,
|
||||
CreateInfraProviderRequestDto,
|
||||
|
|
@ -21,7 +21,7 @@ from remnawave_api.models import (
|
|||
UpdateInfraProviderRequestDto,
|
||||
UpdateInfraProviderResponseDto,
|
||||
)
|
||||
from remnawave_api.rapid import BaseController, delete, get, patch, post
|
||||
from remnawave.rapid import BaseController, delete, get, patch, post
|
||||
|
||||
|
||||
class InfraBillingController(BaseController):
|
||||
|
|
@ -3,7 +3,7 @@ from typing import Annotated
|
|||
from rapid_api_client import Path
|
||||
from rapid_api_client.annotations import PydanticBody
|
||||
|
||||
from remnawave_api.models import (
|
||||
from remnawave.models import (
|
||||
AddUsersToInternalSquadRequestDto,
|
||||
AddUsersToInternalSquadResponseDto,
|
||||
CreateInternalSquadRequestDto,
|
||||
|
|
@ -16,7 +16,7 @@ from remnawave_api.models import (
|
|||
UpdateInternalSquadRequestDto,
|
||||
UpdateInternalSquadResponseDto,
|
||||
)
|
||||
from remnawave_api.rapid import BaseController, delete, get, patch, post
|
||||
from remnawave.rapid import BaseController, delete, get, patch, post
|
||||
|
||||
|
||||
class InternalSquadsController(BaseController):
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
from remnawave_api.models import GetPubKeyResponseDto
|
||||
from remnawave_api.rapid import BaseController, get
|
||||
from remnawave.models import GetPubKeyResponseDto
|
||||
from remnawave.rapid import BaseController, get
|
||||
|
||||
|
||||
class KeygenController(BaseController):
|
||||
|
|
@ -3,7 +3,7 @@ from typing import Annotated
|
|||
from rapid_api_client import Path
|
||||
from rapid_api_client.annotations import PydanticBody
|
||||
|
||||
from remnawave_api.models import (
|
||||
from remnawave.models import (
|
||||
CreateNodeRequestDto,
|
||||
CreateNodeResponseDto,
|
||||
DeleteNodeResponseDto,
|
||||
|
|
@ -18,7 +18,7 @@ from remnawave_api.models import (
|
|||
UpdateNodeRequestDto,
|
||||
UpdateNodeResponseDto,
|
||||
)
|
||||
from remnawave_api.rapid import BaseController, delete, get, patch, post
|
||||
from remnawave.rapid import BaseController, delete, get, patch, post
|
||||
|
||||
|
||||
class NodesController(BaseController):
|
||||
|
|
@ -2,11 +2,11 @@ from typing import Annotated
|
|||
|
||||
from rapid_api_client import Path, Query
|
||||
|
||||
from remnawave_api.models import (
|
||||
from remnawave.models import (
|
||||
GetNodeUserUsageByRangeResponseDto,
|
||||
GetNodesUsageByRangeResponseDto,
|
||||
)
|
||||
from remnawave_api.rapid import BaseController, get
|
||||
from remnawave.rapid import BaseController, get
|
||||
|
||||
|
||||
class NodesUsageHistoryController(BaseController):
|
||||
|
|
@ -2,9 +2,9 @@ from typing import Annotated
|
|||
|
||||
from rapid_api_client import Path
|
||||
|
||||
from remnawave_api.enums import ClientType
|
||||
from remnawave_api.models import GetSubscriptionInfoResponseDto
|
||||
from remnawave_api.rapid import BaseController, get
|
||||
from remnawave.enums import ClientType
|
||||
from remnawave.models import GetSubscriptionInfoResponseDto
|
||||
from remnawave.rapid import BaseController, get
|
||||
|
||||
|
||||
class SubscriptionController(BaseController):
|
||||
|
|
@ -2,12 +2,12 @@ from typing import Annotated
|
|||
|
||||
from rapid_api_client.annotations import PydanticBody
|
||||
|
||||
from remnawave_api.models import (
|
||||
from remnawave.models import (
|
||||
GetSubscriptionSettingsResponseDto,
|
||||
UpdateSubscriptionSettingsRequestDto,
|
||||
UpdateSubscriptionSettingsResponseDto,
|
||||
)
|
||||
from remnawave_api.rapid import BaseController, get, patch
|
||||
from remnawave.rapid import BaseController, get, patch
|
||||
|
||||
|
||||
class SubscriptionsSettingsController(BaseController):
|
||||
|
|
@ -2,9 +2,9 @@ from typing import Annotated
|
|||
|
||||
from rapid_api_client.annotations import Path, PydanticBody
|
||||
|
||||
from remnawave_api.enums import TemplateType
|
||||
from remnawave_api.models import GetTemplateResponseDto, UpdateTemplateRequestDto, UpdateTemplateResponseDto
|
||||
from remnawave_api.rapid import BaseController, get, put
|
||||
from remnawave.enums import TemplateType
|
||||
from remnawave.models import GetTemplateResponseDto, UpdateTemplateRequestDto, UpdateTemplateResponseDto
|
||||
from remnawave.rapid import BaseController, get, put
|
||||
|
||||
|
||||
class SubscriptionsTemplateController(BaseController):
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
from remnawave_api.models import (
|
||||
from remnawave.models import (
|
||||
GetBandwidthStatsResponseDto,
|
||||
GetNodesStatisticsResponseDto,
|
||||
GetStatsResponseDto,
|
||||
)
|
||||
from remnawave_api.rapid import BaseController, get
|
||||
from remnawave.rapid import BaseController, get
|
||||
|
||||
|
||||
class SystemController(BaseController):
|
||||
|
|
@ -3,7 +3,7 @@ from typing import Annotated, Optional
|
|||
from rapid_api_client import Path, Query
|
||||
from rapid_api_client.annotations import PydanticBody
|
||||
|
||||
from remnawave_api.models import (
|
||||
from remnawave.models import (
|
||||
CreateUserRequestDto,
|
||||
DeleteUserResponseDto,
|
||||
EmailUserResponseDto,
|
||||
|
|
@ -15,7 +15,7 @@ from remnawave_api.models import (
|
|||
TagsResponseDto,
|
||||
RevokeUserRequestDto
|
||||
)
|
||||
from remnawave_api.rapid import BaseController, delete, get, patch, post
|
||||
from remnawave.rapid import BaseController, delete, get, patch, post
|
||||
|
||||
|
||||
class UsersController(BaseController):
|
||||
|
|
@ -3,8 +3,8 @@ from uuid import UUID
|
|||
|
||||
from rapid_api_client.annotations import PydanticBody
|
||||
|
||||
from remnawave_api.enums import UserStatus
|
||||
from remnawave_api.models import (
|
||||
from remnawave.enums import UserStatus
|
||||
from remnawave.models import (
|
||||
BulkAllResetTrafficUsersResponseDto,
|
||||
BulkAllUpdateUsersRequestDto,
|
||||
BulkAllUpdateUsersResponseDto,
|
||||
|
|
@ -12,7 +12,7 @@ from remnawave_api.models import (
|
|||
BulkUpdateUsersInboundsRequestDto,
|
||||
UpdateUserFields,
|
||||
)
|
||||
from remnawave_api.rapid import AttributeBody, BaseController, patch, post
|
||||
from remnawave.rapid import AttributeBody, BaseController, patch, post
|
||||
|
||||
|
||||
class UsersBulkActionsController(BaseController):
|
||||
|
|
@ -2,8 +2,8 @@ from typing import Annotated
|
|||
|
||||
from rapid_api_client import Path, Query
|
||||
|
||||
from remnawave_api.models import GetUserUsageByRangeResponseDto
|
||||
from remnawave_api.rapid import BaseController, get
|
||||
from remnawave.models import GetUserUsageByRangeResponseDto
|
||||
from remnawave.rapid import BaseController, get
|
||||
|
||||
|
||||
class UsersStatsController(BaseController):
|
||||
|
|
@ -2,8 +2,8 @@ from typing import Annotated
|
|||
|
||||
from rapid_api_client.annotations import JsonBody
|
||||
|
||||
from remnawave_api.models import GetConfigResponseDto, UpdateConfigResponseDto
|
||||
from remnawave_api.rapid import BaseController, get, put
|
||||
from remnawave.models import GetConfigResponseDto, UpdateConfigResponseDto
|
||||
from remnawave.rapid import BaseController, get, put
|
||||
|
||||
|
||||
class XrayConfigController(BaseController):
|
||||
|
|
@ -2,7 +2,7 @@ from datetime import datetime
|
|||
|
||||
from pydantic import AliasChoices, BaseModel, Field
|
||||
|
||||
from remnawave_api.enums import ErrorCode
|
||||
from remnawave.enums import ErrorCode
|
||||
|
||||
|
||||
from typing import Any, List, Optional
|
||||
|
|
@ -2,7 +2,7 @@ from datetime import datetime
|
|||
|
||||
import httpx
|
||||
|
||||
from remnawave_api.enums import ErrorCode
|
||||
from remnawave.enums import ErrorCode
|
||||
from .general import (
|
||||
ApiError,
|
||||
ApiErrorResponse,
|
||||
|
|
@ -3,7 +3,7 @@ from uuid import UUID
|
|||
|
||||
from pydantic import BaseModel, Field, StringConstraints, RootModel
|
||||
|
||||
from remnawave_api.enums import ALPN, Fingerprint, SecurityLayer
|
||||
from remnawave.enums import ALPN, Fingerprint, SecurityLayer
|
||||
|
||||
|
||||
class ReorderResponse(BaseModel):
|
||||
|
|
@ -3,7 +3,7 @@ from uuid import UUID
|
|||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
from remnawave_api.models import HostResponseDto
|
||||
from remnawave.models import HostResponseDto
|
||||
|
||||
|
||||
class SetInboundToManyHostsRequestDto(BaseModel):
|
||||
|
|
@ -4,7 +4,7 @@ from uuid import UUID
|
|||
|
||||
from pydantic import BaseModel, Field, StringConstraints, RootModel
|
||||
|
||||
from remnawave_api.models.internal_squads import InboundsDto
|
||||
from remnawave.models.internal_squads import InboundsDto
|
||||
|
||||
|
||||
class ExcludedInbounds(BaseModel):
|
||||
|
|
@ -3,7 +3,7 @@ from typing import Any, Dict, List, Optional
|
|||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
from remnawave_api.enums import TrafficLimitStrategy, UserStatus
|
||||
from remnawave.enums import TrafficLimitStrategy, UserStatus
|
||||
|
||||
|
||||
class HappCrypto(BaseModel):
|
||||
|
|
@ -3,7 +3,7 @@ from uuid import UUID
|
|||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
from remnawave_api.enums import TemplateType
|
||||
from remnawave.enums import TemplateType
|
||||
|
||||
|
||||
class TemplateResponseDto(BaseModel):
|
||||
|
|
@ -9,7 +9,7 @@ from pydantic import (
|
|||
StringConstraints,
|
||||
)
|
||||
|
||||
from remnawave_api.enums import TrafficLimitStrategy, UserStatus
|
||||
from remnawave.enums import TrafficLimitStrategy, UserStatus
|
||||
|
||||
|
||||
class UserActiveInboundsDto(BaseModel):
|
||||
|
|
@ -4,8 +4,8 @@ from uuid import UUID
|
|||
|
||||
from pydantic import BaseModel, EmailStr, Field, constr
|
||||
|
||||
from remnawave_api.enums import UserStatus
|
||||
from remnawave_api.enums.users import TrafficLimitStrategy
|
||||
from remnawave.enums import UserStatus
|
||||
from remnawave.enums.users import TrafficLimitStrategy
|
||||
|
||||
|
||||
class BulkUpdateUsersInboundsRequestDto(BaseModel):
|
||||
|
|
@ -21,9 +21,9 @@ from rapid_api_client.client import pydantic_xml, RapidParameter, RapidParameter
|
|||
from rapid_api_client.typing import BM, T
|
||||
from rapid_api_client.utils import filter_none_values, find_annotation
|
||||
|
||||
from remnawave_api.exceptions import ApiError, ApiErrorResponse, handle_api_error
|
||||
from remnawave_api.rapid import AttributeBody
|
||||
from remnawave_api.utils.serializer import orjson_default
|
||||
from remnawave.exceptions import ApiError, ApiErrorResponse, handle_api_error
|
||||
from remnawave.rapid import AttributeBody
|
||||
from remnawave.utils.serializer import orjson_default
|
||||
|
||||
|
||||
class BaseController(RapidApi):
|
||||
BIN
remnawave_api/.DS_Store
vendored
BIN
remnawave_api/.DS_Store
vendored
Binary file not shown.
|
|
@ -3,7 +3,7 @@ import os
|
|||
import pytest
|
||||
from dotenv import load_dotenv
|
||||
|
||||
from remnawave_api import RemnawaveSDK
|
||||
from remnawave import RemnawaveSDK
|
||||
|
||||
load_dotenv()
|
||||
REMNAWAVE_BASE_URL = os.getenv("REMNAWAVE_BASE_URL")
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import pytest
|
||||
|
||||
from remnawave_api.models import LoginRequestDto, LoginResponseDto, LoginTelegramRequestDto
|
||||
from remnawave_api.exceptions import ForbiddenError, ApiError
|
||||
from remnawave.models import LoginRequestDto, LoginResponseDto, LoginTelegramRequestDto
|
||||
from remnawave.exceptions import ForbiddenError, ApiError
|
||||
from tests.conftest import REMNAWAVE_ADMIN_PASSWORD, REMNAWAVE_ADMIN_USERNAME
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
from remnawave_api.models import GetNodesUsageByRangeResponseDto, GetNodesRealtimeUsageResponseDto
|
||||
from remnawave.models import GetNodesUsageByRangeResponseDto, GetNodesRealtimeUsageResponseDto
|
||||
from tests.utils import generate_isoformat_range
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import pytest
|
||||
|
||||
from remnawave_api.models import (
|
||||
from remnawave.models import (
|
||||
CreateConfigProfileRequestDto,
|
||||
CreateConfigProfileResponseDto,
|
||||
DeleteConfigProfileResponseDto,
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@ import random
|
|||
|
||||
import pytest
|
||||
|
||||
from remnawave_api.enums import ALPN, Fingerprint
|
||||
from remnawave_api.models import (
|
||||
from remnawave.enums import ALPN, Fingerprint
|
||||
from remnawave.models import (
|
||||
CreateHostRequestDto,
|
||||
CreateHostResponseDto,
|
||||
DeleteHostResponseDto,
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import uuid
|
|||
|
||||
import pytest
|
||||
|
||||
from remnawave_api.models import (
|
||||
from remnawave.models import (
|
||||
CreateUserHwidDeviceRequestDto,
|
||||
DeleteUserHwidDeviceRequestDto,
|
||||
CreateUserHwidDeviceResponseDto,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import pytest
|
||||
|
||||
from remnawave_api.models import GetAllInboundsResponseDto
|
||||
from remnawave.models import GetAllInboundsResponseDto
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ from datetime import datetime, timedelta
|
|||
|
||||
import pytest
|
||||
|
||||
from remnawave_api.models import (
|
||||
from remnawave.models import (
|
||||
CreateInfraBillingNodeRequestDto,
|
||||
CreateInfraBillingNodeResponseDto,
|
||||
CreateInfraProviderRequestDto,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
from uuid import UUID
|
||||
import pytest
|
||||
|
||||
from remnawave_api.models import (
|
||||
from remnawave.models import (
|
||||
AddUsersToInternalSquadRequestDto,
|
||||
AddUsersToInternalSquadResponseDto,
|
||||
CreateInternalSquadRequestDto,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import pytest
|
||||
|
||||
from remnawave_api.models import GetPubKeyResponseDto
|
||||
from remnawave.models import GetPubKeyResponseDto
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import random
|
|||
|
||||
import pytest
|
||||
|
||||
from remnawave_api.models import (
|
||||
from remnawave.models import (
|
||||
NodeConfigProfileRequestDto,
|
||||
CreateNodeRequestDto,
|
||||
DeleteNodeResponseDto,
|
||||
|
|
@ -13,7 +13,7 @@ from remnawave_api.models import (
|
|||
ReorderNodeResponseDto,
|
||||
UpdateNodeRequestDto,
|
||||
)
|
||||
from remnawave_api.models.nodes import ReorderNodeItem
|
||||
from remnawave.models.nodes import ReorderNodeItem
|
||||
from tests.conftest import REMNAWAVE_CONFIG_PROFILE_UUID, REMNAWAVE_INBOUND_UUID
|
||||
from tests.utils import generate_random_string
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ from datetime import datetime, timedelta
|
|||
|
||||
import pytest
|
||||
|
||||
from remnawave_api.models import (
|
||||
from remnawave.models import (
|
||||
GetNodeUserUsageByRangeResponseDto,
|
||||
GetNodesUsageByRangeResponseDto,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import pytest
|
||||
|
||||
from remnawave_api.enums import ClientType
|
||||
from remnawave_api.models import GetSubscriptionInfoResponseDto
|
||||
from remnawave.enums import ClientType
|
||||
from remnawave.models import GetSubscriptionInfoResponseDto
|
||||
from tests.conftest import REMNAWAVE_SHORT_UUID
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import pytest
|
||||
|
||||
from remnawave_api.models import (
|
||||
from remnawave.models import (
|
||||
GetSubscriptionSettingsResponseDto,
|
||||
UpdateSubscriptionSettingsRequestDto,
|
||||
UpdateSubscriptionSettingsResponseDto,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import pytest
|
||||
|
||||
from remnawave_api.enums import TemplateType
|
||||
from remnawave_api.models import GetTemplateResponseDto, UpdateTemplateRequestDto, UpdateTemplateResponseDto
|
||||
from remnawave.enums import TemplateType
|
||||
from remnawave.models import GetTemplateResponseDto, UpdateTemplateRequestDto, UpdateTemplateResponseDto
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import pytest
|
||||
|
||||
from remnawave_api.models import (
|
||||
from remnawave.models import (
|
||||
GetBandwidthStatsResponseDto,
|
||||
GetNodesStatisticsResponseDto,
|
||||
GetStatsResponseDto,
|
||||
|
|
|
|||
|
|
@ -4,9 +4,9 @@ from datetime import datetime, timedelta
|
|||
import pytest
|
||||
import pytz
|
||||
|
||||
from remnawave_api.enums import ErrorCode, UserStatus
|
||||
from remnawave_api.exceptions import ApiError
|
||||
from remnawave_api.models import (
|
||||
from remnawave.enums import ErrorCode, UserStatus
|
||||
from remnawave.exceptions import ApiError
|
||||
from remnawave.models import (
|
||||
CreateUserRequestDto,
|
||||
DeleteUserResponseDto,
|
||||
EmailUserResponseDto,
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ from typing import List
|
|||
import pytest
|
||||
import pytz
|
||||
|
||||
from remnawave_api.models import BulkResponseDto, UpdateUserFields
|
||||
from remnawave.models import BulkResponseDto, UpdateUserFields
|
||||
from tests.conftest import REMNAWAVE_USER_UUID
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import pytest
|
||||
|
||||
from remnawave_api.models import GetUserUsageByRangeResponseDto
|
||||
from remnawave.models import GetUserUsageByRangeResponseDto
|
||||
from tests.conftest import REMNAWAVE_USER_UUID
|
||||
from tests.utils import generate_isoformat_range
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue