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
def test_get_response_model(self): response = self.responses[0] result = get_response_model(str(response.id)) self.assertEqual(response, result)