From 26085352006456290313053e156c70fe0fcee804 Mon Sep 17 00:00:00 2001 From: PhilipWafula Date: Thu, 27 May 2021 18:55:17 +0300 Subject: [PATCH] Refactors transitions and ussd menus to fix bugs. --- apps/cic-ussd/cic_ussd/db/ussd_menu.json | 30 +++++++++++++ .../states/account_management_states.json | 5 ++- .../gender_setting_transitions.json | 12 ++--- .../location_setting_transitions.json | 12 ++--- .../transitions/name_setting_transitions.json | 41 +++++------------ .../transitions/pin_setting_transitions.json | 6 +-- .../products_setting_transitions.json | 6 +-- .../user_metadata_transitions.json | 2 +- apps/cic-ussd/var/lib/locale/ussd.en.yml | 31 +++++++++++++ apps/cic-ussd/var/lib/locale/ussd.sw.yml | 44 ++++++++++++++----- 10 files changed, 128 insertions(+), 61 deletions(-) diff --git a/apps/cic-ussd/cic_ussd/db/ussd_menu.json b/apps/cic-ussd/cic_ussd/db/ussd_menu.json index 0f0d24eb..26255654 100644 --- a/apps/cic-ussd/cic_ussd/db/ussd_menu.json +++ b/apps/cic-ussd/cic_ussd/db/ussd_menu.json @@ -245,6 +245,36 @@ "display_key": "ussd.kenya.exit_invalid_recipient", "name": "exit_invalid_recipient", "parent": null + }, + "42": { + "description": "Pin entry menu for changing name data.", + "display_key": "ussd.kenya.name_edit_pin_authorization", + "name": "name_edit_pin_authorization", + "parent": "metadata_management" + }, + "43": { + "description": "Pin entry menu for changing gender data.", + "display_key": "ussd.kenya.gender_edit_pin_authorization", + "name": "gender_edit_pin_authorization", + "parent": "metadata_management" + }, + "44": { + "description": "Pin entry menu for changing location data.", + "display_key": "ussd.kenya.location_edit_pin_authorization", + "name": "location_edit_pin_authorization", + "parent": "metadata_management" + }, + "45": { + "description": "Pin entry menu for changing products data.", + "display_key": "ussd.kenya.products_edit_pin_authorization", + "name": "products_edit_pin_authorization", + "parent": "metadata_management" + }, + "46": { + "description": "Pin confirmation for pin change.", + "display_key": "ussd.kenya.new_pin_confirmation", + "name": "new_pin_confirmation", + "parent": "metadata_management" } } diff --git a/apps/cic-ussd/states/account_management_states.json b/apps/cic-ussd/states/account_management_states.json index 419ba157..456edd92 100644 --- a/apps/cic-ussd/states/account_management_states.json +++ b/apps/cic-ussd/states/account_management_states.json @@ -6,7 +6,10 @@ "enter_new_pin", "new_pin_confirmation", "display_user_metadata", - "standard_pin_authorization", + "name_edit_pin_authorization", + "gender_edit_pin_authorization", + "location_edit_pin_authorization", + "products_edit_pin_authorization", "account_balances_pin_authorization", "account_statement_pin_authorization", "account_balances" diff --git a/apps/cic-ussd/transitions/gender_setting_transitions.json b/apps/cic-ussd/transitions/gender_setting_transitions.json index 951be716..7881cdd7 100644 --- a/apps/cic-ussd/transitions/gender_setting_transitions.json +++ b/apps/cic-ussd/transitions/gender_setting_transitions.json @@ -4,12 +4,13 @@ "source": "enter_gender", "dest": "enter_location", "after": "cic_ussd.state_machine.logic.user.save_metadata_attribute_to_session_data", - "conditions": "cic_ussd.state_machine.logic.validator.is_valid_gender_selection" + "conditions": "cic_ussd.state_machine.logic.validator.is_valid_gender_selection", + "unless": "cic_ussd.state_machine.logic.validator.has_cached_user_metadata" }, { "trigger": "scan_data", "source": "enter_gender", - "dest": "standard_pin_authorization", + "dest": "gender_edit_pin_authorization", "after": "cic_ussd.state_machine.logic.user.save_metadata_attribute_to_session_data", "conditions": [ "cic_ussd.state_machine.logic.validator.has_cached_user_metadata", @@ -18,15 +19,14 @@ }, { "trigger": "scan_data", - "source": "standard_pin_authorization", + "source": "gender_edit_pin_authorization", "dest": "exit", "conditions": "cic_ussd.state_machine.logic.pin.is_authorized_pin", - "after": "cic_ussd.state_machine.logic.user.edit_user_metadata_attribute", - "unless": "cic_ussd.state_machine.logic.validator.has_cached_user_metadata" + "after": "cic_ussd.state_machine.logic.user.edit_user_metadata_attribute" }, { "trigger": "scan_data", - "source": "standard_pin_authorization", + "source": "gender_edit_pin_authorization", "dest": "exit_pin_blocked", "conditions": "cic_ussd.state_machine.logic.pin.is_locked_account" }, diff --git a/apps/cic-ussd/transitions/location_setting_transitions.json b/apps/cic-ussd/transitions/location_setting_transitions.json index d4197339..fa6ea52d 100644 --- a/apps/cic-ussd/transitions/location_setting_transitions.json +++ b/apps/cic-ussd/transitions/location_setting_transitions.json @@ -3,26 +3,26 @@ "trigger": "scan_data", "source": "enter_location", "dest": "enter_products", - "after": "cic_ussd.state_machine.logic.user.save_metadata_attribute_to_session_data" + "after": "cic_ussd.state_machine.logic.user.save_metadata_attribute_to_session_data", + "unless": "cic_ussd.state_machine.logic.validator.has_cached_user_metadata" }, { "trigger": "scan_data", "source": "enter_location", - "dest": "standard_pin_authorization", + "dest": "location_edit_pin_authorization", "after": "cic_ussd.state_machine.logic.user.save_metadata_attribute_to_session_data", "conditions": "cic_ussd.state_machine.logic.validator.has_cached_user_metadata" }, { "trigger": "scan_data", - "source": "standard_pin_authorization", + "source": "location_edit_pin_authorization", "dest": "exit", "conditions": "cic_ussd.state_machine.logic.pin.is_authorized_pin", - "after": "cic_ussd.state_machine.logic.user.edit_user_metadata_attribute", - "unless": "cic_ussd.state_machine.logic.validator.has_cached_user_metadata" + "after": "cic_ussd.state_machine.logic.user.edit_user_metadata_attribute" }, { "trigger": "scan_data", - "source": "standard_pin_authorization", + "source": "location_edit_pin_authorization", "dest": "exit_pin_blocked", "conditions": "cic_ussd.state_machine.logic.pin.is_locked_account" } diff --git a/apps/cic-ussd/transitions/name_setting_transitions.json b/apps/cic-ussd/transitions/name_setting_transitions.json index 1cda4b84..38b5e58c 100644 --- a/apps/cic-ussd/transitions/name_setting_transitions.json +++ b/apps/cic-ussd/transitions/name_setting_transitions.json @@ -7,49 +7,28 @@ }, { "trigger": "scan_data", - "source": "enter_given_name", - "dest": "standard_pin_authorization", + "source": "enter_family_name", + "dest": "name_edit_pin_authorization", "after": "cic_ussd.state_machine.logic.user.save_metadata_attribute_to_session_data", "conditions": "cic_ussd.state_machine.logic.validator.has_cached_user_metadata" }, - { - "trigger": "scan_data", - "source": "standard_pin_authorization", - "dest": "exit", - "conditions": "cic_ussd.state_machine.logic.pin.is_authorized_pin", - "after": "cic_ussd.state_machine.logic.user.edit_user_metadata_attribute", - "unless": "cic_ussd.state_machine.logic.validator.has_cached_user_metadata" - }, - { - "trigger": "scan_data", - "source": "standard_pin_authorization", - "dest": "exit_pin_blocked", - "conditions": "cic_ussd.state_machine.logic.pin.is_locked_account" - }, { "trigger": "scan_data", "source": "enter_family_name", "dest": "enter_gender", - "after": "cic_ussd.state_machine.logic.user.save_metadata_attribute_to_session_data" - }, - { - "trigger": "scan_data", - "source": "enter_family_name", - "dest": "standard_pin_authorization", "after": "cic_ussd.state_machine.logic.user.save_metadata_attribute_to_session_data", - "conditions": "cic_ussd.state_machine.logic.validator.has_cached_user_metadata" - }, - { - "trigger": "scan_data", - "source": "standard_pin_authorization", - "dest": "exit", - "conditions": "cic_ussd.state_machine.logic.pin.is_authorized_pin", - "after": "cic_ussd.state_machine.logic.user.edit_user_metadata_attribute", "unless": "cic_ussd.state_machine.logic.validator.has_cached_user_metadata" }, { "trigger": "scan_data", - "source": "standard_pin_authorization", + "source": "name_edit_pin_authorization", + "dest": "exit", + "conditions": "cic_ussd.state_machine.logic.pin.is_authorized_pin", + "after": "cic_ussd.state_machine.logic.user.edit_user_metadata_attribute" + }, + { + "trigger": "scan_data", + "source": "name_edit_pin_authorization", "dest": "exit_pin_blocked", "conditions": "cic_ussd.state_machine.logic.pin.is_locked_account" } diff --git a/apps/cic-ussd/transitions/pin_setting_transitions.json b/apps/cic-ussd/transitions/pin_setting_transitions.json index 2d904be0..6b5e797b 100644 --- a/apps/cic-ussd/transitions/pin_setting_transitions.json +++ b/apps/cic-ussd/transitions/pin_setting_transitions.json @@ -9,14 +9,14 @@ "trigger": "scan_data", "source": "enter_current_pin", "dest": "exit_pin_blocked", - "conditions": "cic_ussd.state_machine.logic.menu.is_blocked_pin" + "conditions": "cic_ussd.state_machine.logic.pin.is_blocked_pin" }, { "trigger": "scan_data", "source": "enter_new_pin", "dest": "new_pin_confirmation", "after": "cic_ussd.state_machine.logic.pin.save_initial_pin_to_session_data", - "conditions": "cic_ussd.state_machine.logic.menu.is_valid_new_pin" + "conditions": "cic_ussd.state_machine.logic.pin.is_valid_new_pin" }, { "trigger": "scan_data", @@ -28,7 +28,7 @@ "source": "new_pin_confirmation", "dest": "complete", "conditions": "cic_ussd.state_machine.logic.pin.pins_match", - "after": "cic_ussd.state_machine.logic.menu.complete_pin_change" + "after": "cic_ussd.state_machine.logic.pin.complete_pin_change" }, { "trigger": "scan_data", diff --git a/apps/cic-ussd/transitions/products_setting_transitions.json b/apps/cic-ussd/transitions/products_setting_transitions.json index b4bb8b1d..b25c7bfb 100644 --- a/apps/cic-ussd/transitions/products_setting_transitions.json +++ b/apps/cic-ussd/transitions/products_setting_transitions.json @@ -2,7 +2,7 @@ { "trigger": "scan_data", "source": "enter_products", - "dest": "standard_pin_authorization", + "dest": "products_edit_pin_authorization", "conditions": "cic_ussd.state_machine.logic.validator.has_cached_user_metadata", "after": "cic_ussd.state_machine.logic.user.save_metadata_attribute_to_session_data" }, @@ -17,14 +17,14 @@ }, { "trigger": "scan_data", - "source": "standard_pin_authorization", + "source": "products_edit_pin_authorization", "dest": "exit", "conditions": "cic_ussd.state_machine.logic.pin.is_authorized_pin", "after": "cic_ussd.state_machine.logic.user.edit_user_metadata_attribute" }, { "trigger": "scan_data", - "source": "standard_pin_authorization", + "source": "products_edit_pin_authorization", "dest": "exit_pin_blocked", "conditions": "cic_ussd.state_machine.logic.pin.is_locked_account" } diff --git a/apps/cic-ussd/transitions/user_metadata_transitions.json b/apps/cic-ussd/transitions/user_metadata_transitions.json index 7ee8cab0..dff068f6 100644 --- a/apps/cic-ussd/transitions/user_metadata_transitions.json +++ b/apps/cic-ussd/transitions/user_metadata_transitions.json @@ -8,7 +8,7 @@ { "trigger": "scan_data", "source": "metadata_management", - "dest": "enter_age", + "dest": "enter_gender", "conditions": "cic_ussd.state_machine.logic.menu.menu_two_selected" }, { diff --git a/apps/cic-ussd/var/lib/locale/ussd.en.yml b/apps/cic-ussd/var/lib/locale/ussd.en.yml index 8e9c3e42..e85b6357 100644 --- a/apps/cic-ussd/var/lib/locale/ussd.en.yml +++ b/apps/cic-ussd/var/lib/locale/ussd.en.yml @@ -78,6 +78,9 @@ en: enter_new_pin: |- CON Enter new PIN again 0. Back + new_pin_confirmation: |- + CON Enter your new four number PIN again + 0. Back transaction_pin_authorization: first: |- CON %{recipient_information} will receive %{transaction_amount} %{token_symbol} from %{sender_information}. @@ -107,6 +110,34 @@ en: retry: |- CON Please enter your PIN. You have %{remaining_attempts} attempts remaining 0. Back + name_edit_pin_authorization: + first: |- + CON Please enter your PIN + 0. Back + retry: |- + CON Please enter your PIN. You have %{remaining_attempts} attempts remaining + 0. Back + gender_edit_pin_authorization: + first: |- + CON Please enter your PIN + 0. Back + retry: |- + CON Please enter your PIN. You have %{remaining_attempts} attempts remaining + 0. Back + location_edit_pin_authorization: + first: |- + CON Please enter your PIN + 0. Back + retry: |- + CON Please enter your PIN. You have %{remaining_attempts} attempts remaining + 0. Back + products_edit_pin_authorization: + first: |- + CON Please enter your PIN + 0. Back + retry: |- + CON Please enter your PIN. You have %{remaining_attempts} attempts remaining + 0. Back account_balances: |- CON Your balances are as follows: balance: %{operational_balance} %{token_symbol} diff --git a/apps/cic-ussd/var/lib/locale/ussd.sw.yml b/apps/cic-ussd/var/lib/locale/ussd.sw.yml index 57fea950..ac6e91c9 100644 --- a/apps/cic-ussd/var/lib/locale/ussd.sw.yml +++ b/apps/cic-ussd/var/lib/locale/ussd.sw.yml @@ -78,6 +78,9 @@ sw: enter_new_pin: |- CON Weka nambari ya siri mpya 0. Nyuma + new_pin_confirmation: |- + CON Weka PIN yako tena + 0. Nyuma transaction_pin_authorization: first: |- CON %{recipient_information} atapokea %{transaction_amount} %{token_symbol} kutoka kwa %{sender_information}. @@ -86,13 +89,6 @@ sw: retry: |- CON Weka nambari ya siri. Una majaribio %{remaining_attempts} yaliyobaki. 0. Nyuma - standard_pin_authorization: - first: |- - CON Tafadhali weka PIN yako. - 0. Nyuma - retry: |- - CON Tafadhali weka PIN yako. Una majaribio %{remaining_attempts} yaliyobaki. - 0. Nyuma account_balances_pin_authorization: first: |- CON Tafadhali weka PIN yako kuona salio. @@ -107,11 +103,39 @@ sw: retry: |- CON Tafadhali weka PIN yako. Una majaribio %{remaining_attempts} yaliyobaki. 0. Nyuma + name_edit_pin_authorization: + first: |- + CON Tafadhali weka PIN yako + 0. Nyuma + retry: |- + CON Tafadhali weka PIN yako. Una majaribio %{remaining_attempts} yaliyobaki. + 0. Nyuma + gender_edit_pin_authorization: + first: |- + CON Tafadhali weka PIN yako + 0. Nyuma + retry: |- + CON Tafadhali weka PIN yako. Una majaribio %{remaining_attempts} yaliyobaki. + 0. Nyuma + location_edit_pin_authorization: + first: |- + CON Tafadhali weka PIN yako + 0. Nyuma + retry: |- + CON Tafadhali weka PIN yako. Una majaribio %{remaining_attempts} yaliyobaki. + 0. Nyuma + products_edit_pin_authorization: + first: |- + CON Tafadhali weka PIN yako + 0. Nyuma + retry: |- + CON Tafadhali weka PIN yako. Una majaribio %{remaining_attempts} yaliyobaki. + 0. Nyuma account_balances: |- CON Salio zako ni zifuatazo: - salio: %{operational_balance} - ushuru: %{tax} - tuzo: %{bonus} + salio: %{operational_balance} %{token_symbol} + ushuru: %{tax} %{token_symbol} + tuzo: %{bonus} %{token_symbol} 0. Back first_transaction_set: |- CON %{first_transaction_set}