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: 1 addition & 1 deletion switcher_client/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ def snapshot_version() -> int:
if snapshot is None:
return 0

return snapshot.data.domain.version
return snapshot.domain.version

@staticmethod
def __is_check_snapshot_available(fetch_remote = False) -> bool:
Expand Down
2 changes: 1 addition & 1 deletion switcher_client/lib/remote.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ def resolve_snapshot(token: Optional[str], context: Context) -> str | None:
response = Remote.__do_post(f'{context.url}/graphql', data, Remote.__get_header(token))

if response.status_code == 200:
return json.dumps(response.json(), indent=4)
return json.dumps(response.json().get('data', {}), indent=4)

raise RemoteError(f'[resolve_snapshot] failed with status: {response.status_code}')

Expand Down
10 changes: 5 additions & 5 deletions switcher_client/lib/resolver.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from switcher_client.errors import LocalCriteriaError
from switcher_client.lib.types import Config, Group, ResultDetail, Snapshot, SnapshotData
from switcher_client.lib.types import Config, Domain, Group, ResultDetail, Snapshot
from switcher_client.switcher_data import SwitcherData

class Resolver:
Expand All @@ -9,14 +9,14 @@ def check_criteria(snapshot: Snapshot | None, switcher: SwitcherData) -> ResultD
if not snapshot:
raise LocalCriteriaError("Snapshot not loaded. Try to use 'Client.load_snapshot()'")

return Resolver.__check_domain(snapshot.data, switcher)
return Resolver.__check_domain(snapshot.domain, switcher)

@staticmethod
def __check_domain(data: SnapshotData, switcher: SwitcherData) -> ResultDetail:
if data.domain.activated is False:
def __check_domain(domain: Domain, switcher: SwitcherData) -> ResultDetail:
if domain.activated is False:
return ResultDetail.disabled("Domain is disabled")

return Resolver.__check_group(data.domain.group, switcher)
return Resolver.__check_group(domain.group, switcher)

@staticmethod
def __check_group(groups: list[Group], switcher: SwitcherData) -> ResultDetail:
Expand Down
10 changes: 4 additions & 6 deletions switcher_client/lib/snapshot_loader.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,8 @@ def load_domain(snapshot_location: str, environment: str):

if not os.path.exists(snapshot_file):
json_data = {
'data': {
'domain': {
'version': 0,
}
'domain': {
'version': 0,
}
}

Expand All @@ -30,7 +28,7 @@ def load_domain(snapshot_location: str, environment: str):
with open(snapshot_file, 'r') as file:
json_data = json.load(file)

snapshot = Snapshot(json_data.get('data', {}))
snapshot = Snapshot(json_data.get('domain', {}))

return snapshot

Expand All @@ -48,7 +46,7 @@ def validate_snapshot(
if not status:
snapshot_str = Remote.resolve_snapshot(GlobalAuth.get_token(), context)
graphql_response = json.loads(snapshot_str or '{}')
return Snapshot(graphql_response.get('data', '{}'))
return Snapshot(graphql_response.get('domain', '{}'))

return None

Expand Down
10 changes: 2 additions & 8 deletions switcher_client/lib/types.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,6 @@ def disabled(reason: str, metadata: Optional[dict] = None) -> 'ResultDetail':
def success(reason: str = "Success", metadata: Optional[dict] = None) -> 'ResultDetail':
return ResultDetail(result=True, reason=reason, metadata=metadata)

class SnapshotData:
def __init__(self):
self.domain: Domain

class Domain:
def __init__(self):
self.name: str
Expand Down Expand Up @@ -52,10 +48,8 @@ def __init__(self):

class Snapshot:
def __init__(self, json_data: dict):
data = json_data
self._original_data = json_data
self.data = SnapshotData()
self.data.domain = self._parse_domain(data.get('domain', {}))
self.domain = self._parse_domain(json_data)

def _parse_domain(self, domain_data: dict) -> Domain:
""" Parse domain data from JSON """
Expand Down Expand Up @@ -126,4 +120,4 @@ def _parse_relay(self, relay_data: dict) -> Relay:
def to_dict(self) -> dict:
""" Convert Snapshot back to dictionary format for JSON serialization """

return {'data': self._original_data}
return {'domain': self._original_data}
4 changes: 2 additions & 2 deletions tests/playground/index.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ def load_snapshot_from_remote():

setup_context(ContextOptions(
local=True,
snapshot_location='snapshots/temp'
snapshot_location='tests/playground/snapshots/temp'
))

Client.load_snapshot(LoadSnapshotOptions(
Expand All @@ -50,7 +50,7 @@ def auto_update_snapshot():
""" Use case: Auto update snapshot """
setup_context(ContextOptions(
local=True,
snapshot_location='snapshots/temp',
snapshot_location='tests/playground/snapshots/temp',
snapshot_auto_update_interval=10
))

Expand Down
Loading