示例#1
0
    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.user_id)

        data = self.payload['data']
        email_subject = data['email_subject']
        email_body = data['email_body']
        max_recipients = data['max_recipients']
        email_intent = data['email_intent']
        user_query_services.send_email_to_qualified_users(
            query_id, email_subject, email_body, email_intent, max_recipients)
        self.render_json({})
示例#2
0
    def post(self, query_id):
        query_model = user_models.UserQueryModel.get(query_id, strict=False)
        if (query_model is None or
                query_model.query_status != feconf.USER_QUERY_STATUS_COMPLETED):
            raise self.InvalidInputException('400 Invalid query id.')

        if query_model.submitter_id != self.user_id:
            raise self.UnauthorizedUserException(
                '%s is not an authorized user for this query.', self.user_id)

        data = self.payload['data']
        email_subject = data['email_subject']
        email_body = data['email_body']
        max_recipients = data['max_recipients']
        email_intent = data['email_intent']
        user_query_services.send_email_to_qualified_users(
            query_id, email_subject, email_body, email_intent, max_recipients)
        self.render_json({})
示例#3
0
    def test_send_email_to_qualified_users(self) -> None:
        self.assertIsNone(
            user_models.UserBulkEmailsModel.get(self.new_user_id,
                                                strict=False))
        self.assertIsNone(
            user_models.UserBulkEmailsModel.get(self.admin_user_id,
                                                strict=False))

        send_bulk_email_swap = self.swap_with_checks(
            email_services,
            'send_bulk_mail',
            lambda *_: None,
            expected_args=[
                ('%s <%s>' %
                 (self.CURRICULUM_ADMIN_USERNAME, self.CURRICULUM_ADMIN_EMAIL),
                 [self.NEW_USER_EMAIL], 'subject', 'body', 'body')
            ])

        with send_bulk_email_swap:
            user_query_services.send_email_to_qualified_users(
                self.USER_QUERY_1_ID, 'subject', 'body',
                feconf.BULK_EMAIL_INTENT_IMPROVE_EXPLORATION, 1)

        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)

        new_user_bulk_email_model = user_models.UserBulkEmailsModel.get(
            self.new_user_id)
        # Ruling out the possibility of None for mypy type checking.
        assert new_user_bulk_email_model is not None
        self.assertIsNotNone(
            email_models.BulkEmailModel.get(
                new_user_bulk_email_model.sent_email_model_ids[0]))