Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion api/app/pagination.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@
from collections import OrderedDict
from typing import Any

from flag_engine.identities.models import IdentityModel
from rest_framework.pagination import PageNumberPagination
from rest_framework.response import Response

from util.engine_models.identities.models import IdentityModel


class CustomPagination(PageNumberPagination):
page_size = 999
Expand Down
2 changes: 1 addition & 1 deletion api/e2etests/e2e_seed_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
VIEW_PROJECT,
)
from django.conf import settings
from flag_engine.identities.models import IdentityModel as EngineIdentity

from edge_api.identities.models import EdgeIdentity
from environments.identities.models import Identity
Expand All @@ -25,6 +24,7 @@
from organisations.subscriptions.constants import ENTERPRISE
from projects.models import Project, UserProjectPermission
from users.models import FFAdminUser, UserPermissionGroup
from util.engine_models.identities.models import IdentityModel as EngineIdentity

# Password used by all the test users
PASSWORD = "Str0ngp4ssw0rd!"
Expand Down
2 changes: 1 addition & 1 deletion api/edge_api/identities/export.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@
from decimal import Decimal

from django.utils import timezone
from flag_engine.identities.traits.types import map_any_value_to_trait_value

from edge_api.identities.models import EdgeIdentity
from environments.identities.traits.models import Trait
from features.models import Feature, FeatureState
from features.multivariate.models import MultivariateFeatureOption
from util.engine_models.identities.traits.types import map_any_value_to_trait_value

EXPORT_EDGE_IDENTITY_PAGINATION_LIMIT = 20000

Expand Down
4 changes: 2 additions & 2 deletions api/edge_api/identities/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@
from contextlib import suppress

from django.db.models import Prefetch, Q
from flag_engine.features.models import FeatureStateModel
from flag_engine.identities.models import IdentityFeaturesList, IdentityModel

from api_keys.user import APIKeyUser
from edge_api.identities.tasks import (
Expand All @@ -20,6 +18,8 @@
from features.multivariate.models import MultivariateFeatureStateValue
from features.versioning.versioning_service import get_environment_flags_dict
from users.models import FFAdminUser
from util.engine_models.features.models import FeatureStateModel
from util.engine_models.identities.models import IdentityFeaturesList, IdentityModel
from util.mappers import map_engine_identity_to_identity_document


Expand Down
22 changes: 12 additions & 10 deletions api/edge_api/identities/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,6 @@

from django.utils import timezone
from drf_spectacular.utils import extend_schema_field
from flag_engine.features.models import FeatureModel as EngineFeatureModel
from flag_engine.features.models import FeatureStateModel as EngineFeatureStateModel
from flag_engine.features.models import (
MultivariateFeatureOptionModel as EngineMultivariateFeatureOptionModel,
)
from flag_engine.features.models import (
MultivariateFeatureStateValueModel as EngineMultivariateFeatureStateValueModel,
)
from flag_engine.identities.models import IdentityModel as EngineIdentity
from flag_engine.utils.exceptions import DuplicateFeatureState
from pydantic import ValidationError as PydanticValidationError
from pyngo import drf_error_details
from rest_framework import serializers
Expand All @@ -25,6 +15,18 @@
from features.serializers import ( # type: ignore[attr-defined]
FeatureStateValueSerializer,
)
from util.engine_models.features.models import FeatureModel as EngineFeatureModel
from util.engine_models.features.models import (
FeatureStateModel as EngineFeatureStateModel,
)
from util.engine_models.features.models import (
MultivariateFeatureOptionModel as EngineMultivariateFeatureOptionModel,
)
from util.engine_models.features.models import (
MultivariateFeatureStateValueModel as EngineMultivariateFeatureStateValueModel,
)
from util.engine_models.identities.models import IdentityModel as EngineIdentity
from util.engine_models.utils.exceptions import DuplicateFeatureState
from util.mappers import (
map_engine_identity_to_identity_document,
map_feature_to_engine,
Expand Down
2 changes: 1 addition & 1 deletion api/edge_api/identities/utils.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import typing

from flag_engine.features.models import FeatureStateModel
from util.engine_models.features.models import FeatureStateModel

if typing.TYPE_CHECKING:
from edge_api.identities.types import ChangeType, FeatureStateChangeDetails
Expand Down
4 changes: 2 additions & 2 deletions api/edge_api/identities/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@
)
from django.shortcuts import get_object_or_404
from drf_spectacular.utils import extend_schema
from flag_engine.identities.models import IdentityFeaturesList, IdentityModel
from flag_engine.identities.traits.models import TraitModel
from pyngo import drf_error_details
from rest_framework import status, viewsets
from rest_framework.decorators import action, api_view, permission_classes
Expand Down Expand Up @@ -56,6 +54,8 @@
from features.models import FeatureState
from features.permissions import IdentityFeatureStatePermissions
from projects.exceptions import DynamoNotEnabledError
from util.engine_models.identities.models import IdentityFeaturesList, IdentityModel
from util.engine_models.identities.traits.models import TraitModel

from . import edge_identity_service
from .exceptions import TraitPersistenceError
Expand Down
3 changes: 1 addition & 2 deletions api/environments/dynamodb/services.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
from decimal import Decimal
from typing import Generator, Iterable

from flag_engine.identities.models import IdentityModel

from environments.dynamodb import (
CapacityBudgetExceeded,
DynamoEnvironmentV2Wrapper,
Expand All @@ -16,6 +14,7 @@
)
from environments.models import Environment
from projects.models import EdgeV2MigrationStatus
from util.engine_models.identities.models import IdentityModel
from util.mappers import map_engine_feature_state_to_identity_override

logger = logging.getLogger(__name__)
Expand Down
3 changes: 2 additions & 1 deletion api/environments/dynamodb/types.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,10 @@

import boto3
from django.conf import settings
from flag_engine.features.models import FeatureStateModel
from pydantic import BaseModel

from util.engine_models.features.models import FeatureStateModel

if typing.TYPE_CHECKING:
from projects.models import EdgeV2MigrationStatus

Expand Down
10 changes: 6 additions & 4 deletions api/environments/dynamodb/wrappers/identity_wrapper.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,17 @@
from boto3.dynamodb.conditions import Attr, Key
from django.conf import settings
from django.core.exceptions import ObjectDoesNotExist
from flag_engine.context.mappers import map_environment_identity_to_context
from flag_engine.environments.models import EnvironmentModel
from flag_engine.identities.models import IdentityModel
from flag_engine.segments.evaluator import get_context_segments
from rest_framework.exceptions import NotFound

from edge_api.identities.search import EdgeIdentitySearchData
from environments.dynamodb.constants import IDENTITIES_PAGINATION_LIMIT
from environments.dynamodb.wrappers.exceptions import CapacityBudgetExceeded
from util.engine_models.context.mappers import (
get_context_segments,
map_environment_identity_to_context,
)
from util.engine_models.environments.models import EnvironmentModel
from util.engine_models.identities.models import IdentityModel
from util.mappers import map_identity_to_identity_document

from .base import BaseDynamoWrapper
Expand Down
6 changes: 4 additions & 2 deletions api/environments/identities/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@

from django.db import models
from django.db.models import Prefetch, Q
from flag_engine.context.mappers import map_environment_identity_to_context
from flag_engine.segments.evaluator import is_context_in_segment

from environments.identities.managers import IdentityManager
from environments.identities.traits.models import Trait
Expand All @@ -13,6 +11,10 @@
from features.multivariate.models import MultivariateFeatureStateValue
from features.versioning.versioning_service import get_environment_flags_list
from segments.models import Segment
from util.engine_models.context.mappers import (
is_context_in_segment,
map_environment_identity_to_context,
)
from util.mappers.engine import (
map_identity_to_engine,
map_segment_to_engine,
Expand Down
2 changes: 1 addition & 1 deletion api/environments/identities/serializers.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import typing

from drf_spectacular.utils import extend_schema_field
from flag_engine.features.models import FeatureStateModel
from rest_framework import serializers
from rest_framework.exceptions import ValidationError

Expand All @@ -10,6 +9,7 @@
from environments.serializers import EnvironmentSerializerFull
from features.models import FeatureState
from features.serializers import FeatureStateSerializerFull
from util.engine_models.features.models import FeatureStateModel


class IdentifierOnlyIdentitySerializer(serializers.ModelSerializer): # type: ignore[type-arg]
Expand Down
2 changes: 1 addition & 1 deletion api/integrations/webhook/serializers.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import typing

from django.db.models import Q
from flag_engine.segments.evaluator import is_context_in_segment
from rest_framework import serializers

from features.serializers import FeatureStateSerializerFull
from integrations.common.serializers import (
BaseEnvironmentIntegrationModelSerializer,
)
from segments.models import Segment
from util.engine_models.context.mappers import is_context_in_segment
from util.mappers.engine import (
map_engine_identity_to_context,
map_identity_to_engine,
Expand Down
2 changes: 1 addition & 1 deletion api/organisations/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
LifecycleModelMixin,
hook,
)
from flag_engine.identities.traits.types import TraitValue
from simple_history.models import HistoricalRecords # type: ignore[import-untyped]

from core.models import SoftDeleteExportableModel
Expand Down Expand Up @@ -53,6 +52,7 @@
)
from organisations.subscriptions.metadata import BaseSubscriptionMetadata
from organisations.subscriptions.xero.metadata import XeroSubscriptionMetadata
from util.engine_models.identities.traits.types import TraitValue
from webhooks.models import AbstractBaseExportableWebhookModel

environment_cache = caches[settings.ENVIRONMENT_CACHE_NAME]
Expand Down
Loading
Loading