Пример #1
0
def test_filing_type(session):
    """Assert that filing_type is empty on a new filing."""
    identifier = 'CP7654321'
    business = factory_business(identifier)
    factory_completed_filing(business, ANNUAL_REPORT)

    filings = Filing.get_filings_by_status(business.id, [Filing.Status.DRAFT.value, Filing.Status.COMPLETED.value])
    assert filings[0].filing_type == 'annualReport'
Пример #2
0
def test_filing_json_completed(session):
    """Assert that the json field gets the completed filing correctly."""
    identifier = 'CP7654321'
    business = factory_business(identifier)
    factory_completed_filing(business, ANNUAL_REPORT)

    filings = Filing.get_filings_by_status(business.id, [Filing.Status.COMPLETED.value])
    filing = filings[0]

    assert filing.json
    assert filing.json['filing']['header']['status'] == Filing.Status.COMPLETED.value
    assert filing.json['filing']['annualReport']
    assert 'directors' in filing.json['filing']['annualReport']
    assert 'offices' in filing.json['filing']['annualReport']
Пример #3
0
    def get(identifier, filing_id=None):  # pylint: disable=too-many-return-statements,too-many-branches;
        # fix this while refactoring this whole module
        """Return a JSON object with meta information about the Service."""
        original_filing = str(request.args.get('original',
                                               None)).lower() == 'true'
        if identifier.startswith('T'):
            rv = CoreFiling.get(identifier, filing_id)

            if not rv.storage:
                return jsonify({'message': f'{identifier} no filings found'
                                }), HTTPStatus.NOT_FOUND
            if str(request.accept_mimetypes
                   ) == 'application/pdf' and filing_id:
                if rv.filing_type == 'incorporationApplication':
                    return legal_api.reports.get_pdf(rv.storage, None)

            if original_filing:
                filing_json = rv.raw
            else:
                filing_json = rv.json
                filing_json['filing']['documents'] = DocumentMetaService(
                ).get_documents(filing_json)

            if filing_json['filing']['header'][
                    'status'] == Filing.Status.PENDING.value:
                try:
                    headers = {
                        'Authorization':
                        f'Bearer {jwt.get_token_auth_header()}',
                        'Content-Type': 'application/json'
                    }
                    payment_svc_url = current_app.config.get('PAYMENT_SVC_URL')
                    pay_response = requests.get(
                        url=
                        f'{payment_svc_url}/{filing_json["filing"]["header"]["paymentToken"]}',
                        headers=headers)
                    pay_details = {
                        'isPaymentActionRequired':
                        pay_response.json().get('isPaymentActionRequired',
                                                False),
                        'paymentMethod':
                        pay_response.json().get('paymentMethod', '')
                    }
                    filing_json['filing']['header'].update(pay_details)

                except (exceptions.ConnectionError, exceptions.Timeout) as err:
                    current_app.logger.error(
                        f'Payment connection failure for getting {identifier} filing payment details. ',
                        err)

            return jsonify(filing_json)

        business = Business.find_by_identifier(identifier)

        if not business:
            return jsonify(filings=[]), HTTPStatus.NOT_FOUND

        if filing_id:
            rv = CoreFiling.get(identifier, filing_id)
            if not rv:
                return jsonify({'message': f'{identifier} no filings found'
                                }), HTTPStatus.NOT_FOUND

            if str(request.accept_mimetypes) == 'application/pdf':
                report_type = request.args.get('type', None)

                if rv.filing_type == CoreFiling.FilingTypes.CORRECTION.value:
                    # This is required until #5302 ticket implements
                    rv.storage._filing_json['filing']['correction'][
                        'diff'] = rv.json['filing']['correction']['diff']  # pylint: disable=protected-access; # noqa: E501;

                return legal_api.reports.get_pdf(rv.storage, report_type)
            return jsonify(rv.raw if original_filing else rv.json)

        # Does it make sense to get a PDF of all filings?
        if str(request.accept_mimetypes) == 'application/pdf':
            return jsonify({'message': _('Cannot return a single PDF of multiple filing submissions.')}),\
                HTTPStatus.NOT_ACCEPTABLE

        rv = []
        filings = CoreFiling.get_filings_by_status(
            business.id,
            [Filing.Status.COMPLETED.value, Filing.Status.PAID.value])
        for filing in filings:
            filing_json = filing.raw
            filing_json['filing']['documents'] = DocumentMetaService(
            ).get_documents(filing_json)
            rv.append(filing_json)

        return jsonify(filings=rv)