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)
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)
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)