def test_get_user_query_returns_user_query(self) -> None: user_query = user_query_services.get_user_query(self.USER_QUERY_1_ID) # Ruling out the possibility of None for mypy type checking. assert user_query is not None self.assertEqual(self.user_query_model_1.id, user_query.id) self.assertEqual(self.user_query_model_1.inactive_in_last_n_days, user_query.params.inactive_in_last_n_days) self.assertEqual(self.user_query_model_1.has_not_logged_in_for_n_days, user_query.params.has_not_logged_in_for_n_days) self.assertEqual(self.user_query_model_1.created_at_least_n_exps, user_query.params.created_at_least_n_exps) self.assertEqual(self.user_query_model_1.created_fewer_than_n_exps, user_query.params.created_fewer_than_n_exps) self.assertEqual(self.user_query_model_1.edited_at_least_n_exps, user_query.params.edited_at_least_n_exps) self.assertEqual(self.user_query_model_1.edited_fewer_than_n_exps, user_query.params.edited_fewer_than_n_exps) self.assertEqual(self.user_query_model_1.submitter_id, user_query.submitter_id) self.assertEqual(self.user_query_model_1.query_status, user_query.status) self.assertEqual(self.user_query_model_1.user_ids, user_query.user_ids) self.assertEqual(self.user_query_model_1.sent_email_model_id, user_query.sent_email_model_id) self.assertEqual(self.user_query_model_1.created_on, user_query.created_on) self.assertEqual(self.user_query_model_1.deleted, user_query.deleted)
def test_get_user_query_returns_user_query(self): user_query = user_query_services.get_user_query(self.USER_QUERY_1_ID) self.assertEqual(self.user_query_model_1.id, user_query.id) self.assertEqual(self.user_query_model_1.inactive_in_last_n_days, user_query.params.inactive_in_last_n_days) self.assertEqual(self.user_query_model_1.has_not_logged_in_for_n_days, user_query.params.has_not_logged_in_for_n_days) self.assertEqual(self.user_query_model_1.created_at_least_n_exps, user_query.params.created_at_least_n_exps) self.assertEqual(self.user_query_model_1.created_fewer_than_n_exps, user_query.params.created_fewer_than_n_exps) self.assertEqual(self.user_query_model_1.edited_at_least_n_exps, user_query.params.edited_at_least_n_exps) self.assertEqual(self.user_query_model_1.edited_fewer_than_n_exps, user_query.params.edited_fewer_than_n_exps) self.assertEqual(self.user_query_model_1.submitter_id, user_query.submitter_id) self.assertEqual(self.user_query_model_1.query_status, user_query.status) self.assertEqual(self.user_query_model_1.user_ids, user_query.user_ids) self.assertEqual(self.user_query_model_1.sent_email_model_id, user_query.sent_email_model_id) self.assertEqual(self.user_query_model_1.created_on, user_query.created_on) self.assertEqual(self.user_query_model_1.deleted, user_query.deleted)
def get(self): query_id = self.normalized_request.get('query_id') user_query = user_query_services.get_user_query(query_id) if user_query is None: raise self.InvalidInputException('Invalid query id.') data = {'query': _generate_user_query_dicts([user_query])[0]} self.render_json(data)
def test_archive_user_query_archives_user_query(self): original_user_query = (user_query_services.get_user_query( self.USER_QUERY_1_ID)) user_query_services.archive_user_query(original_user_query.id) archived_user_query_model = (user_models.UserQueryModel.get_by_id( self.USER_QUERY_1_ID)) self.assertEqual(archived_user_query_model.query_status, feconf.USER_QUERY_STATUS_ARCHIVED) self.assertTrue(archived_user_query_model.deleted)
def post(self, query_id): user_query = user_query_services.get_user_query(query_id) if (user_query is None or user_query.status != feconf.USER_QUERY_STATUS_COMPLETED): raise self.InvalidInputException('400 Invalid query id.') if user_query.submitter_id != self.user_id: raise self.UnauthorizedUserException( '%s is not an authorized user for this query.' % self.username) user_query_services.archive_user_query(user_query.id) self.render_json({})
def get(self, query_id): user_query = user_query_services.get_user_query(query_id) if (user_query is None or user_query.status != feconf.USER_QUERY_STATUS_COMPLETED): raise self.InvalidInputException('400 Invalid query id.') if user_query.submitter_id != self.user_id: raise self.UnauthorizedUserException( '%s is not an authorized user for this query.' % self.username) self.render_template('email-dashboard-result.mainpage.html')
def test_archive_user_query_archives_user_query(self) -> None: original_user_query = (user_query_services.get_user_query( self.USER_QUERY_1_ID)) # Ruling out the possibility of None for mypy type checking. assert original_user_query is not None user_query_services.archive_user_query(original_user_query.id) archived_user_query_model = (user_models.UserQueryModel.get_by_id( self.USER_QUERY_1_ID)) self.assertEqual(archived_user_query_model.query_status, feconf.USER_QUERY_STATUS_ARCHIVED) self.assertTrue(archived_user_query_model.deleted)
def post(self): """Post handler for query.""" data = self.normalized_payload.get('data') kwargs = {key: data[key] for key in data if data[key] is not None} user_query_id = user_query_services.save_new_user_query( self.user_id, kwargs) # Start MR job in background. user_query = (user_query_services.get_user_query(user_query_id, strict=True)) data = {'query': _generate_user_query_dicts([user_query])[0]} self.render_json(data)
def post(self, query_id): user_query = user_query_services.get_user_query(query_id) if (user_query is None or user_query.status != feconf.USER_QUERY_STATUS_COMPLETED): raise self.InvalidInputException('400 Invalid query id.') if user_query.submitter_id != self.user_id: raise self.UnauthorizedUserException( '%s is not an authorized user for this query.' % self.username) email_subject = self.normalized_payload.get('email_subject') email_body = self.normalized_payload.get('email_body') test_email_body = '[This is a test email.]<br><br> %s' % email_body email_manager.send_test_email_for_bulk_emails(user_query.submitter_id, email_subject, test_email_body) self.render_json({})
def post(self, query_id): user_query = user_query_services.get_user_query(query_id) if (user_query is None or user_query.status != feconf.USER_QUERY_STATUS_COMPLETED): raise self.InvalidInputException('400 Invalid query id.') if user_query.submitter_id != self.user_id: raise self.UnauthorizedUserException( '%s is not an authorized user for this query.' % self.username) email_subject = self.normalized_payload.get('email_subject') email_body = self.normalized_payload.get('email_body') max_recipients = self.normalized_payload.get('max_recipients') email_intent = self.normalized_payload.get('email_intent') user_query_services.send_email_to_qualified_users( query_id, email_subject, email_body, email_intent, max_recipients) self.render_json({})
def post(self): """Post handler for query.""" data = self.payload['data'] kwargs = {key: data[key] for key in data if data[key] is not None} self._validate(kwargs) user_query_id = user_query_services.save_new_user_query( self.user_id, **kwargs) # Start MR job in background. job_id = user_query_jobs_one_off.UserQueryOneOffJob.create_new() params = {'query_id': user_query_id} user_query_jobs_one_off.UserQueryOneOffJob.enqueue( job_id, additional_job_params=params) user_query = (user_query_services.get_user_query(user_query_id, strict=True)) data = {'query': _generate_user_query_dicts([user_query])[0]} self.render_json(data)