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
2 changes: 0 additions & 2 deletions flag_engine/api/constants.py

This file was deleted.

22 changes: 0 additions & 22 deletions flag_engine/api/document_builders.py

This file was deleted.

48 changes: 0 additions & 48 deletions flag_engine/api/fields.py

This file was deleted.

25 changes: 0 additions & 25 deletions flag_engine/api/filters.py

This file was deleted.

156 changes: 0 additions & 156 deletions flag_engine/api/schemas.py

This file was deleted.

8 changes: 2 additions & 6 deletions flag_engine/environments/builders.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,11 @@
from flag_engine.environments.models import EnvironmentAPIKeyModel, EnvironmentModel
from flag_engine.environments.schemas import EnvironmentAPIKeySchema, EnvironmentSchema

environment_schema = EnvironmentSchema()
environment_api_key_schema = EnvironmentAPIKeySchema()


def build_environment_model(environment_dict: dict) -> EnvironmentModel:
return environment_schema.load(environment_dict)
return EnvironmentModel.parse_obj(environment_dict)


def build_environment_api_key_model(
environment_key_dict: dict,
) -> EnvironmentAPIKeyModel:
return environment_api_key_schema.load(environment_key_dict)
return EnvironmentAPIKeyModel.parse_obj(environment_key_dict)
13 changes: 7 additions & 6 deletions flag_engine/environments/integrations/models.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
from dataclasses import dataclass
from typing import Optional

from pydantic import BaseModel

@dataclass
class IntegrationModel:
api_key: str = None
base_url: str = None
entity_selector: str = None

class IntegrationModel(BaseModel):
api_key: Optional[str] = None
base_url: Optional[str] = None
entity_selector: Optional[str] = None
13 changes: 0 additions & 13 deletions flag_engine/environments/integrations/schemas.py

This file was deleted.

25 changes: 11 additions & 14 deletions flag_engine/environments/models.py
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
import typing
from dataclasses import dataclass, field
from datetime import datetime

from pydantic import BaseModel, Field

from flag_engine.environments.integrations.models import IntegrationModel
from flag_engine.features.models import FeatureStateModel
from flag_engine.projects.models import ProjectModel
from flag_engine.utils.datetime import utcnow_with_tz


@dataclass
class EnvironmentAPIKeyModel:
class EnvironmentAPIKeyModel(BaseModel):
id: int
key: str
created_at: datetime
name: str
client_api_key: str
expires_at: datetime = None
expires_at: typing.Optional[datetime] = None
active: bool = True

@property
Expand All @@ -25,23 +25,22 @@ def is_valid(self):
)


@dataclass
class WebhookModel:
class WebhookModel(BaseModel):
url: str
secret: str


@dataclass
class EnvironmentModel:
class EnvironmentModel(BaseModel):
id: int
api_key: str
project: ProjectModel
feature_states: typing.List[FeatureStateModel] = field(default_factory=list)
feature_states: typing.List[FeatureStateModel] = Field(default_factory=list)

name: str = None
name: typing.Optional[str] = None
allow_client_traits: bool = True
updated_at: datetime = field(default_factory=utcnow_with_tz)
updated_at: datetime = Field(default_factory=utcnow_with_tz)
hide_sensitive_data: bool = False
hide_disabled_flags: typing.Optional[bool] = None
use_identity_composite_key_for_hashing: bool = False

amplitude_config: typing.Optional[IntegrationModel] = None
Expand All @@ -51,8 +50,6 @@ class EnvironmentModel:
rudderstack_config: typing.Optional[IntegrationModel] = None
segment_config: typing.Optional[IntegrationModel] = None

hide_disabled_flags: typing.Optional[bool] = None

webhook_config: typing.Optional[WebhookModel] = None

_INTEGRATION_ATTS = [
Expand All @@ -65,7 +62,7 @@ class EnvironmentModel:
]

@property
def integrations_data(self) -> dict:
def integrations_data(self) -> typing.Dict[str, typing.Dict[str, str]]:
"""
Return a dictionary representation of all integration config objects.

Expand Down
Loading