From b1db750150f9da8e15b4c1b8e25f401a9967723c Mon Sep 17 00:00:00 2001 From: Hlamalani Date: Wed, 22 Nov 2023 19:15:28 +0200 Subject: [PATCH] update pending status to limit_reached status when the endline survey limit is reached --- yal/endline_terms_and_conditions.py | 13 +++++++++++++ yal/main.py | 9 --------- yal/tests/test_main.py | 6 ++++++ 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/yal/endline_terms_and_conditions.py b/yal/endline_terms_and_conditions.py index f65098bd..e649ac23 100644 --- a/yal/endline_terms_and_conditions.py +++ b/yal/endline_terms_and_conditions.py @@ -349,6 +349,19 @@ async def state_submit_terms_and_conditions_endline(self): return await self.go_to_state(EndlineApplication.START_STATE) async def state_endline_limit_reached(self): + + msisdn = normalise_phonenumber(self.inbound.from_addr) + whatsapp_id = msisdn.lstrip(" + ") + + data = { + "endline_survey_started": "limit_reached", + "assessment_reminder": "", + "assessment_reminder_sent": "", + "assessment_reminder_type": "", + } + error = await rapidpro.update_profile(whatsapp_id, data, self.user.metadata) + if error: + self.state_name = self.ERROR_STATE choices = [ Choice("menu", "Go to the menu"), Choice("aaq", "Ask a question"), diff --git a/yal/main.py b/yal/main.py index 15cf88d5..0163a538 100644 --- a/yal/main.py +++ b/yal/main.py @@ -248,15 +248,6 @@ async def process_message(self, message): self.state_name = ( EndlineTermsApplication.ENDLINE_LIMIT_REACHED_STATE ) - - data = { - "endline_survey_started": "limit_reached", - } - error = await rapidpro.update_profile( - whatsapp_id, data, self.user.metadata - ) - if error: - self.state_name = self.ERROR_STATE else: self.state_name = EndlineTermsApplication.START_STATE diff --git a/yal/tests/test_main.py b/yal/tests/test_main.py index b8bc902f..ab1822bc 100644 --- a/yal/tests/test_main.py +++ b/yal/tests/test_main.py @@ -1656,11 +1656,17 @@ async def test_state_endline_limit_reached_pending_menu( tester.assert_state("state_endline_limit_reached") tester.assert_metadata("endline_survey_started", "limit_reached") + tester.assert_metadata("assessment_reminder", "") + tester.assert_metadata("assessment_reminder_sent", "") + tester.assert_metadata("assessment_reminder_type", "") request = rapidpro_mock.tstate.requests[4] assert json.loads(request.body.decode("utf-8")) == { "fields": { "endline_survey_started": "limit_reached", + "assessment_reminder": "", + "assessment_reminder_sent": "", + "assessment_reminder_type": "", } }