chore: inject tenant id in feature handlers (#36654)

This commit is contained in:
Tianle
2026-05-26 00:36:02 -05:00
committed by fatelei
parent 68b1e9f739
commit fed282cf3b
2 changed files with 8 additions and 20 deletions

View File

@ -2,11 +2,11 @@ from flask_restx import Resource
from werkzeug.exceptions import Unauthorized
from controllers.common.schema import register_response_schema_models
from libs.login import current_account_with_tenant, current_user, login_required
from libs.login import current_user, login_required
from services.feature_service import FeatureModel, FeatureService, LimitationModel, SystemFeatureModel
from . import console_ns
from .wraps import account_initialization_required, cloud_utm_record, setup_required
from .wraps import account_initialization_required, cloud_utm_record, setup_required, with_current_tenant_id
register_response_schema_models(console_ns, FeatureModel, LimitationModel, SystemFeatureModel)
@ -24,10 +24,9 @@ class FeatureApi(Resource):
@login_required
@account_initialization_required
@cloud_utm_record
def get(self):
@with_current_tenant_id
def get(self, current_tenant_id: str):
"""Get feature configuration for current tenant"""
_, current_tenant_id = current_account_with_tenant()
payload = FeatureService.get_features(
current_tenant_id,
exclude_vector_space=True,
@ -49,10 +48,9 @@ class FeatureVectorSpaceApi(Resource):
@login_required
@account_initialization_required
@cloud_utm_record
def get(self):
@with_current_tenant_id
def get(self, current_tenant_id: str):
"""Get vector-space usage and limit for current tenant"""
_, current_tenant_id = current_account_with_tenant()
return FeatureService.get_vector_space(current_tenant_id).model_dump()

View File

@ -15,11 +15,6 @@ class TestFeatureApi:
def test_get_tenant_features_success(self, mocker: MockerFixture):
from controllers.console.feature import FeatureApi
mocker.patch(
"controllers.console.feature.current_account_with_tenant",
return_value=("account_id", "tenant_123"),
)
get_features = mocker.patch("controllers.console.feature.FeatureService.get_features")
get_features.return_value.model_dump.return_value = {
"features": {"feature_a": True},
@ -29,7 +24,7 @@ class TestFeatureApi:
api = FeatureApi()
raw_get = unwrap(FeatureApi.get)
result = raw_get(api)
result = raw_get(api, "tenant_123")
assert result == {"features": {"feature_a": True}}
get_features.assert_called_once_with("tenant_123", exclude_vector_space=True)
@ -39,18 +34,13 @@ class TestFeatureVectorSpaceApi:
def test_get_vector_space_success(self, mocker: MockerFixture):
from controllers.console.feature import FeatureVectorSpaceApi
mocker.patch(
"controllers.console.feature.current_account_with_tenant",
return_value=("account_id", "tenant_123"),
)
get_vector_space = mocker.patch("controllers.console.feature.FeatureService.get_vector_space")
get_vector_space.return_value.model_dump.return_value = {"size": 5120, "limit": 20480}
api = FeatureVectorSpaceApi()
raw_get = unwrap(FeatureVectorSpaceApi.get)
result = raw_get(api)
result = raw_get(api, "tenant_123")
assert result == {"size": 5120, "limit": 20480}
get_vector_space.assert_called_once_with("tenant_123")