From 07c90cc7e542f3140753067c042a9d435975962a Mon Sep 17 00:00:00 2001 From: PhilipWafula Date: Mon, 22 Nov 2021 13:24:21 +0300 Subject: [PATCH] Improves updating of session data. --- apps/cic-ussd/cic_ussd/session/ussd_session.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/apps/cic-ussd/cic_ussd/session/ussd_session.py b/apps/cic-ussd/cic_ussd/session/ussd_session.py index 9df54afa..92d9323f 100644 --- a/apps/cic-ussd/cic_ussd/session/ussd_session.py +++ b/apps/cic-ussd/cic_ussd/session/ussd_session.py @@ -13,7 +13,7 @@ from cic_ussd.cache import Cache from cic_ussd.db.models.base import SessionBase from cic_ussd.db.models.ussd_session import UssdSession as DbUssdSession -logg = logging.getLogger() +logg = logging.getLogger(__file__) class UssdSession: @@ -239,11 +239,16 @@ def save_session_data(queue: Optional[str], session: Session, data: dict, ussd_s :param ussd_session: A ussd session passed to the state machine. :type ussd_session: UssdSession """ + logg.debug(f'Saving: {data} session data to: {ussd_session}') cache = Cache.store external_session_id = ussd_session.get('external_session_id') existing_session_data = ussd_session.get('data') if existing_session_data: - data = {**existing_session_data, **data} + # replace session data entry + keys = data.keys() + for key in keys: + existing_session_data[key] = data[key] + data = existing_session_data in_redis_ussd_session = cache.get(external_session_id) in_redis_ussd_session = json.loads(in_redis_ussd_session) create_or_update_session(