def submit_claim(): """Submit a claim""" try: req_json = request.get_json(force=True) except TypeError: return jsonify(message='Invalid JSON input'), 400 claim = req_json['claim'] envelope_args = { 'signer_client_id': 1000, 'ds_return_url': req_json['callback-url'], } try: # Create envelope envelope = DsDocument.create_claim('submit-claim.html', claim, envelope_args) # Submit envelope to the Docusign envelope_id = Envelope.send(envelope, session) except ApiException as exc: return process_error(exc) SessionData.set_ds_documents(envelope_id) try: # Get the recipient view result = Envelope.get_view(envelope_id, envelope_args, claim, session) except ApiException as exc: return process_error(exc) return jsonify({'envelope_id': envelope_id, 'redirect_url': result.url})
def minor_major(): """Request for major/minor change""" try: req_json = request.get_json(force=True) except TypeError: return jsonify(message='Invalid json input'), 400 student = req_json['student'] envelope_args = { 'signer_client_id': 1000, 'ds_return_url': req_json['callback-url'] } try: # Create envelope envelope = DsDocument.create('minor-major.html', student, envelope_args) # Submit envelope to the Docusign envelope_id = Envelope.send(envelope, session) except ApiException as exc: return process_error(exc) user_documents = session.get('ds_documents') if not user_documents: session['ds_documents'] = [envelope_id] else: session['ds_documents'].append(envelope_id) try: # Get the recipient view result = Envelope.get_view(envelope_id, envelope_args, student, session) except ApiException as exc: return process_error(exc) return jsonify({'envelope_id': envelope_id, 'redirect_url': result.url})
def download_transcript( ): # pylint: disable-msg=inconsistent-return-statements """Request for viewing unofficial transcript""" try: req_json = request.get_json(force=True) except TypeError: return jsonify(message="Invalid json input"), 400 student = req_json['student'] client_user_id = req_json['client_user_id'] args = {'clickwrap_id': req_json['clickwrap_id']} try: # Gets all the users that have agreed to the clickwrap user_agreements = Clickwrap.get_user_agreements(args, session) except ApiException as exc: return process_error(exc) if client_user_id not in user_agreements: abort(404) student_name = f"{student['first_name']} {student['last_name']}" transcript = render_transcript(student_name) response = Response(transcript, mimetype='text/html') response.headers['Content-Disposition'] = ( 'attachment;filename=Unofficial_transcript.html') return response
def buy_new_insurance(): """Request for the purchase of a new insurance""" try: req_json = request.get_json(force=True) insurance_info = req_json['insurance'] user = req_json['user'] envelope_args = { 'signer_client_id': 1000, 'ds_return_url': req_json['callback-url'], 'gateway_account_id': DsConfig.gateway_id(), 'gateway_name': DsConfig.gateway_name(), 'gateway_display_name': DsConfig.gateway_display_name() } except TypeError: return jsonify(message='Invalid JSON input'), 400 try: # Create envelope with payment envelope = DsDocument.create_with_payment('new-insurance.html', user, insurance_info, envelope_args) # Submit envelope to the Docusign envelope_id = Envelope.send(envelope) user_documents = session.get('ds_documents') if not user_documents: session['ds_documents'] = [envelope_id] else: user_documents.append(envelope_id) session['ds_documents'] = user_documents # Get the recipient view result = Envelope.get_view(envelope_id, envelope_args, user) except ApiException as ex: return process_error(ex) return jsonify({'envelope_id': envelope_id, 'redirect_url': result.url})
def submit_claim(): """Submit a claim""" try: req_json = request.get_json(force=True) claim = req_json['claim'] envelope_args = { 'signer_client_id': 1000, 'ds_return_url': req_json['callback-url'], } except TypeError: return jsonify(message='Invalid JSON input'), 400 try: # Create envelope envelope = DsDocument.create_claim('submit-claim.html', claim, envelope_args) # Submit envelope to the Docusign envelope_id = Envelope.send(envelope) user_documents = session.get('ds_documents') if not user_documents: session['ds_documents'] = [envelope_id] else: user_documents.append(envelope_id) session['ds_documents'] = user_documents # Get the recipient view result = Envelope.get_view(envelope_id, envelope_args, claim) except ApiException as ex: return process_error(ex) return jsonify({'envelope_id': envelope_id, 'redirect_url': result.url})
def payment_activity(): """Request for extra-curricular activity""" try: req_json = request.get_json(force=True) activity_info = req_json['activity'] student = req_json['student'] envelope_args = { 'signer_client_id': 1000, 'ds_return_url': req_json['callback-url'], 'gateway_account_id': DsConfig.gateway_id(), 'gateway_name': DsConfig.gateway_name(), 'gateway_display_name': DsConfig.gateway_display_name() } except TypeError: return jsonify(message='Invalid json input'), 400 try: # Create envelope with payment envelope = DsDocument.create_with_payment('payment-activity.html', student, activity_info, envelope_args) # Submit envelope to Docusign envelope_id = Envelope.send(envelope) user_documents = session.get('ds_documents') if not user_documents: session['ds_documents'] = [envelope_id] else: user_documents.append(envelope_id) session['ds_documents'] = user_documents # Get the recipient view result = Envelope.get_view(envelope_id, envelope_args, student) except ApiException as ex: return process_error(ex) return jsonify({'envelope_id': envelope_id, 'redirect_url': result.url})
def check_payment(): try: if DsClient.check_payment_gateway(): return jsonify(message="User has a payment gateway account"), 200 else: return jsonify( message="User doesn't have a payment gateway account"), 402 except ApiException as ex: return process_error(ex)
def code_grant_auth(): try: url = DsClient.code_auth() except ApiException as ex: return process_error(ex) return jsonify({ 'reason': 'Unauthorized', 'response': 'Permissions should be granted for current integration', 'url': url }), 401
def envelope_download(): """Request for document download from the envelope""" try: envelope_args = { 'envelope_id': request.args['envelope-id'], "document_id": request.args['document-id'], } except TypeError: return jsonify(message="Invalid JSON input"), 400 try: envelope_file = Envelope.download(envelope_args) except ApiException as e: return process_error(e) return envelope_file
def buy_new_insurance(): """Request for the purchase of a new insurance""" try: req_json = request.get_json(force=True) except TypeError: return jsonify(message='Invalid JSON input'), 400 insurance_info = req_json['insurance'] user = req_json['user'] envelope_args = { 'signer_client_id': 1000, 'ds_return_url': req_json['callback-url'], 'gateway_account_id': session.get('payment_gateway_account_id'), 'gateway_name': session.get('payment_gateway'), 'gateway_display_name': session.get('payment_display_name') } try: # Create envelope with payment envelope = DsDocument.create_with_payment( 'new-insurance.html', user, insurance_info, envelope_args ) # Submit envelope to the Docusign envelope_id = Envelope.send(envelope, session) except ApiException as exc: return process_error(exc) SessionData.set_ds_documents(envelope_id) try: # Get the recipient view result = Envelope.get_view(envelope_id, envelope_args, user, session) except ApiException as exc: return process_error(exc) return jsonify({'envelope_id': envelope_id, 'redirect_url': result.url})
def envelope_list(): """Request for envelope list""" try: envelope_args = {'from_date': request.args.get('from-date')} except TypeError: return jsonify(message='Invalid JSON input'), 400 try: user_documents = session.get('ds_documents') if not user_documents: user_documents = [] envelopes = Envelope.list(envelope_args, user_documents) except ApiException as ex: return process_error(ex) return jsonify({'envelopes': envelopes})
def insurance_renewal(): """Create a clickwrap for submitting insurance policy renewal""" try: try: req_json = request.get_json(force=True) clickwrap_args = { 'terms_name': req_json['terms-name'], 'display_name': req_json['display-name'], } except TypeError: return jsonify(message='Invalid JSON input'), 400 clickwrap = Clickwrap.create(clickwrap_args) except ApiException as ex: return process_error(ex) return jsonify(clickwrap=clickwrap)
def transcript_clickwrap(): """Create clickwrap for an unofficial transcript""" try: try: req_json = request.get_json(force=True) clickwrap_args = { 'terms_name': req_json['terms-name'], 'terms_transcript': req_json['terms-transcript'], 'display_name': req_json['display-name'], } except TypeError: return jsonify(message='Invalid json input'), 400 clickwrap = Clickwrap.create(clickwrap_args) except ApiException as ex: return process_error(ex) return jsonify(clickwrap=clickwrap)
def jwt_auth(): try: DsClient.update_token() except ApiException as ex: return process_error(ex) return jsonify(message="Logged in with JWT"), 200