From e429a51c89746f7188be72553cde1568d9725f0b Mon Sep 17 00:00:00 2001 From: Artem Date: Thu, 11 Dec 2025 08:49:00 +0100 Subject: [PATCH] =?UTF-8?q?feat:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20=D0=BF=D0=BE=D0=B4=D0=B4=D0=B5=D1=80=D0=B6=D0=BA?= =?UTF-8?q?=D1=83=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D0=B9=20=D0=B2=20=D0=B3?= =?UTF-8?q?=D0=B5=D0=BD=D0=B5=D1=80=D0=B0=D1=86=D0=B8=D0=B8=20Happ=20Crypt?= =?UTF-8?q?o=20Link?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- remnawave/models/users.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/remnawave/models/users.py b/remnawave/models/users.py index 12c544b..2e7ba56 100644 --- a/remnawave/models/users.py +++ b/remnawave/models/users.py @@ -1,5 +1,5 @@ from datetime import datetime -from typing import Annotated, List, Optional +from typing import Annotated, List, Literal, Optional from uuid import UUID from pydantic import ( @@ -177,6 +177,13 @@ class UserResponseDto(BaseModel): """Generate Happ Crypto Link""" crypto_link = create_happ_crypto_link(self.subscription_url) return HappCrypto(cryptoLink=crypto_link) + + def happ_with_version(self, version: Literal["v3", "v4"] = "v4") -> HappCrypto: + return self._generate_happ(version=version) + + def _generate_happ(self, version): + crypto_link = create_happ_crypto_link(content=self.subscription_url, method=version) + return HappCrypto(cryptoLink=crypto_link) class RevokeUserRequestDto(BaseModel):