Ejemplo n.º 1
0
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})
Ejemplo n.º 2
0
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})
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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})
Ejemplo n.º 5
0
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})
Ejemplo n.º 7
0
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)
Ejemplo n.º 8
0
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
Ejemplo n.º 9
0
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
Ejemplo n.º 10
0
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})
Ejemplo n.º 11
0
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})
Ejemplo n.º 12
0
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)
Ejemplo n.º 14
0
def jwt_auth():
    try:
        DsClient.update_token()
    except ApiException as ex:
        return process_error(ex)
    return jsonify(message="Logged in with JWT"), 200