def unique(dbm, telephone_number): telephone_number = remove_hyphens(telephone_number) try: find_reporter_entity(dbm, telephone_number) except NumberNotRegisteredException: return True return False
def entity_api(self, request, logger): form_code, values, extra_elements = self._parse(request.message) post_sms_processor_response = self._process_post_parse_callback( form_code, values, extra_elements) log_entry = "message:message " + repr( request.message) + "|source: " + request.transport.source + "|" if post_sms_processor_response is not None: if logger is not None: log_entry += "Status: False" logger.info(log_entry) post_sms_processor_response.is_registration = True return post_sms_processor_response reporter_entity = reporters.find_reporter_entity( self.dbm, request.transport.source) form_model, values = self._process(values, form_code, reporter_entity) reporter_entity_names = [{ NAME_FIELD: reporter_entity.value(NAME_FIELD) }] response = self.submit(form_model, values, reporter_entity_names) if logger is not None: log_entry += "Status: True" if response.success else "Status: False" logger.info(log_entry) return response
def test_should_create_organization_setting_with_document_store_on_create_organization( self): c = Client() reg_post = dict( email="*****@*****.**", first_name="first_name", last_name="last", organization_addressline1="x", organization_addressline2="y", organization_city="city", organization_country="country", organization_name="TEST_ORG_NAME", organization_office_phone="", organization_sector="PublicHealth", organization_state="state", organization_website="", organization_zipcode="zip", password1="a", password2="a", title="", ) response = c.post('/register/', reg_post) self.assertIsNotNone(response) user = User.objects.get(email='*****@*****.**') profile = RegistrationProfile.objects.get(user=user) activation_key = profile.activation_key response = c.post('/activate/%s/' % activation_key) self.assertIsNotNone(response) organization = Organization.objects.get(name="TEST_ORG_NAME") organization_settings = OrganizationSetting.objects.get( organization=organization) organization_db_name = organization_settings.document_store expected_org_db_name = ("hni_test_org_name_%s" % (organization.org_id, )).lower() self.assertEqual(expected_org_db_name, organization_db_name) couch_server = couchdb.client.Server(settings.COUCH_DB_SERVER) couch_server.resource.credentials = settings.COUCHDB_CREDENTIALS org_db = None try: org_db = couch_server[organization_db_name] except Exception: self.fail("Organization database %s not created" % (organization_db_name, )) self.assertIsNotNone(org_db) manager = get_db_manager(organization_db_name) test_reporter = reporters.find_reporter_entity( manager, TEST_REPORTER_MOBILE_NUMBER) self.assertIsNotNone(test_reporter) #clean up the org db del couch_server[organization_db_name]
def test_should_return_even_there_is_plus_leading_to_incoming_number(self): def return_x(dbm, number): return [number] with patch( "mangrove.transport.repository.reporters.find_reporters_by_from_number" ) as find_ds_by_from: find_ds_by_from.side_effect = return_x reporter = find_reporter_entity(Mock(), "+23242432") self.assertEqual(reporter, "23242432")
def check_account_and_datasender(incoming_request): organization = incoming_request['organization'] if organization.status == 'Deactivated' or organization.is_expired(): incoming_request['outgoing_message'] = '' return incoming_request try: reporter_entity = find_reporter_entity(incoming_request.get('dbm'), incoming_request.get('transport_info').source) incoming_request['reporter_entity'] = reporter_entity if organization.in_trial_mode: check_quotas_for_trial(organization) except Exception as e: incoming_request['exception'] = e incoming_request['next_state'] = submit_to_player return incoming_request
def add_survey_response(self, request, logger=None, additional_feed_dictionary=None, translation_processor=None): form_code, values, extra_elements = self._parse(request.message) post_sms_processor_response = self._post_parse_processor( form_code, values, extra_elements) if post_sms_processor_response is not None and not post_sms_processor_response.success: if logger is not None: log_entry = "message:message " + repr( request.message ) + "|source: " + request.transport.source + "|" log_entry += "Status: False" logger.info(log_entry) return post_sms_processor_response try: reporter_entity = reporters.find_reporter_entity( self.dbm, request.transport.source) reporter_entity_names = self._get_reporter_name(reporter_entity) reporter_short_code = reporter_entity.short_code except NumberNotRegisteredException: reporter_short_code = None reporter_entity_names = None service = SurveyResponseService(self.dbm, logger, self.feeds_dbm, response=post_sms_processor_response) return service.save_survey( form_code, values, reporter_entity_names, request.transport, reporter_short_code, additional_feed_dictionary=additional_feed_dictionary, translation_processor=translation_processor)