Enhance service merging logic in session management to support nested updates
This commit is contained in:
@@ -770,7 +770,14 @@ class Session:
|
|||||||
if key == "services" and isinstance(value, dict):
|
if key == "services" and isinstance(value, dict):
|
||||||
existing = merged.get("services")
|
existing = merged.get("services")
|
||||||
merged_services = dict(existing) if isinstance(existing, dict) else {}
|
merged_services = dict(existing) if isinstance(existing, dict) else {}
|
||||||
merged_services.update(value)
|
for service_name, service_payload in value.items():
|
||||||
|
current_payload = merged_services.get(service_name)
|
||||||
|
if isinstance(current_payload, dict) and isinstance(service_payload, dict):
|
||||||
|
next_payload = dict(current_payload)
|
||||||
|
next_payload.update(service_payload)
|
||||||
|
merged_services[service_name] = next_payload
|
||||||
|
else:
|
||||||
|
merged_services[service_name] = service_payload
|
||||||
merged["services"] = merged_services
|
merged["services"] = merged_services
|
||||||
else:
|
else:
|
||||||
merged[key] = value
|
merged[key] = value
|
||||||
|
|||||||
Reference in New Issue
Block a user