Пример #1
0
    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)
Пример #2
0
    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)
Пример #3
0
    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)
Пример #4
0
    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)
Пример #5
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.username)
        user_query_services.archive_user_query(user_query.id)
        self.render_json({})
Пример #6
0
    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')
Пример #7
0
    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)
Пример #8
0
    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)
Пример #9
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.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({})
Пример #10
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.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({})
Пример #11
0
    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)