Beispiel #1
0
def submit(connection: Connection, data: dict) -> dict:
    """
    Batch submit to a survey.

    :param connection: a SQLAlchemy connection
    :param data: representation of the submission (from json.loads)
    :return: the UUIDs of the submissions in the database
    """
    c = connection
    survey_id = data["survey_id"]
    required_ids = {q.question_id for q in get_required(connection, survey_id)}

    with c.begin():
        create = partial(_create_submission, c, survey_id, required_ids)
        submission_ids = list(map(create, data["submissions"]))

    return json_response(submission_ids)
Beispiel #2
0
def submit(connection: Connection, data: dict) -> dict:
    """
    Create a submission with answers.

    :param connection: a SQLAlchemy connection
    :param data: representation of the submission (from json.loads)
    :return: the UUID of the submission in the database
    :raise RequiredQuestionSkipped: if there is no answer for a required
                                    question
    """
    c = connection
    survey_id = data['survey_id']
    required = {q.question_id for q in
                get_required(c, survey_id)}

    with c.begin():
        submission_id = _create_submission(c, survey_id, required, data)

    email = get_email_address(c, survey_id)
    return get_one(c, submission_id, email=email)
Beispiel #3
0
 def testGetRequired(self):
     survey_id = connection.execute(survey_table.select().where(
         survey_table.c.survey_title == 'what is life')).first().survey_id
     reqs = get_required(connection, survey_id)
     self.assertEqual(reqs.rowcount, 2)