Exemple #1
0
def load_historic_filings(corp_num: str, business: Business, legal_type: str):
    """Load historic filings for a business."""
    try:
        # get historic filings
        r = requests.get(
            f'{COLIN_API}/api/v1/businesses/{legal_type}/{corp_num}/filings/historic',
            timeout=TIMEOUT)
        if r.status_code != HTTPStatus.OK or not r.json():
            print(
                f'skipping history for {corp_num} historic filings not found')

        else:
            for historic_filing in r.json():
                uow = versioning_manager.unit_of_work(db.session)
                transaction = uow.create_transaction(db.session)
                filing = Filing()
                filing_date = historic_filing['filing']['header']['date']
                filing.filing_date = datetime.datetime.strptime(
                    filing_date, '%Y-%m-%d')
                filing.business_id = business.id
                filing.filing_json = historic_filing
                for colin_id in filing.filing_json['filing']['header'][
                        'colinIds']:
                    colin_event_id = ColinEventId()
                    colin_event_id.colin_event_id = colin_id
                    filing.colin_event_ids.append(colin_event_id)
                filing.transaction_id = transaction.id
                filing._filing_type = historic_filing['filing']['header'][
                    'name']
                filing.paper_only = True
                filing.effective_date = datetime.datetime.strptime(
                    historic_filing['filing']['header']['effectiveDate'],
                    '%Y-%m-%d')
                updater_user = User.find_by_username(UPDATER_USERNAME)
                filing.submitter_id = updater_user.id
                filing.source = Filing.Source.COLIN.value

                db.session.add(filing)

            # only commit after all historic filings were added successfully
            db.session.commit()
            LOADED_FILING_HISTORY.append(corp_num)

    except requests.exceptions.Timeout:
        print('rolling back partial changes...')
        db.session.rollback()
        FAILED_FILING_HISTORY.append(corp_num)
        print('colin_api request timed out getting historic filings.')
    except Exception as err:
        print('rolling back partial changes...')
        db.session.rollback()
        FAILED_FILING_HISTORY.append(corp_num)
        raise err
Exemple #2
0
                        for historic_filing in r.json():
                            uow = versioning_manager.unit_of_work(db.session)
                            transaction = uow.create_transaction(db.session)
                            filing = Filing()
                            filing_date = historic_filing['filing']['header'][
                                'date']
                            filing.filing_date = datetime.datetime.strptime(
                                filing_date, '%Y-%m-%d')
                            filing.business_id = business.id
                            filing.filing_json = historic_filing
                            filing.transaction_id = transaction.id
                            filing_type = historic_filing['filing']['header'][
                                'name']
                            filing.colin_event_id = historic_filing['filing'][
                                filing_type]['eventId']
                            filing.paper_only = True
                            db.session.add(filing)
                            db.session.commit()

                    except requests.exceptions.Timeout as timeout:
                        print(
                            'colin_api request timed out getting historic filings.'
                        )
                else:
                    print(
                        '->historic filings already exist - skipping history load'
                    )
            except Exception as err:
                # db.session.rollback()
                print(err)
                exit(-1)