Exemplo n.º 1
0
def get_seamless_doc_pdf(response_id):
    response = queries.get_response_model(response_id)
    base_url = 'https://cleanslate.seamlessdocs.com/api/'
    if not response.seamless_id:
        form_id = os.environ.get('DEFAULT_SEAMLESS_FORM_ID')
    else:
        form_id = queries.get_seamless_doc_key_for_response(response)
    submit_url = base_url + 'form/{}/submit'.format(form_id)
    submit_result = requests.post(
        submit_url, auth=seamless_auth.build_seamless_auth(),
        data=response.answers).json()
    if 'application_id' in submit_result:
        response.seamless_submission_id = submit_result['application_id']
        db.session.commit()
    else:
        # these abort errors should be more specific
        abort(404)
    app_url = base_url + 'application/{}'.format(
        response.seamless_submission_id)
    # wait for the pdf to be generated
    time.sleep(10)
    app_result = requests.get(
        app_url, auth=seamless_auth.build_seamless_auth()).json()
    response.pdf_url = app_result.get('submission_pdf_url', '')
    if response.pdf_url:
        db.session.commit()
    else:
        abort(404)
    form = queries.get_typeform(id=response.typeform_id)
    response_data = queries.response_serializer.dump(response).data
    return form, response_data
Exemplo n.º 2
0
 def test_get_response_model(self):
     response = self.responses[0]
     result = get_response_model(str(response.id))
     self.assertEqual(response, result)