def get_yesterday_report_from_server():
    yesterday = dom_utils.get_yesterday_date()
    logger.info('Getting report for: {}'.format(yesterday))
    if not data_files.is_report_file_exists():
        logger.info('Report is not generated. Creating now.')
        create_and_store_it_if_needed(yesterday)
    return data_files.load_report_on_server_on(yesterday)
def get_last_two_days_report_difference() -> dict:
    two_days_exists = data_files.is_report_file_exists_for(
        dom_utils.get_two_days_ago_date())
    yesterday_ago = data_files.is_report_file_exists_for(
        dom_utils.get_yesterday_date())

    if not two_days_exists or not yesterday_ago:
        return {
            'error':
            'Unable to generate difference between because at least one of the report do not exists.'
            'Reports:2 days ago: {}. Yesterday: {}'.format(
                two_days_exists, yesterday_ago)
        }

    two_days_ago = data_files.load_report_on_server_on(
        dom_utils.get_two_days_ago_date())
    one_day_ago = data_files.load_report_on_server_on(
        dom_utils.get_yesterday_date())
    return report_generator.compare_two_reports(two_days_ago, one_day_ago)
Exemple #3
0
def save_report_at_server(report: dict):
    try:
        report_file_path = '{}/{}'.format(
            config_service.get_report_path_at_server(),
            dom_utils.get_date_as_filename('report', 'json',
                                           dom_utils.get_yesterday_date()))
        logger.info('Saving report to {}'.format(report_file_path))
        with open(report_file_path, 'w+', encoding=ENCODING) as report_file:
            json.dump(report, report_file, ensure_ascii=False, indent=4)
    except Exception as exception:
        logger.error('Unable to save report due to {}'.format(exception))
def generate_for_yesterday() -> dict:
    logger.info('Getting report for yesterday...')
    path = dom_utils.get_date_as_filename('report', 'json',
                                          dom_utils.get_yesterday_date())
    try:
        if data_files.check_if_report_was_generated(path):
            logger.info('Report was generated. Getting report from file.')
            return data_files.load_report(path)
        else:
            logger.info('Generating report')
            report = report_generator.generate_for_yesterday()
            email_sender_service.send(report, 'Report')
            data_files.save_report(
                report,
                dom_utils.get_date_as_filename('report', 'json',
                                               dom_utils.get_yesterday_date()))
            return report
    except Exception as e:
        logger.error(
            'Unable to generate report due to {}.Returning empty report'.
            format(e),
            exc_info=True)
        return {'error': str(e)}
def generate_enviro_report_for_yesterday() -> dict:
    yesterday = dom_utils.get_yesterday_date()
    logger.info('Getting  report for enviro for {}'.format(yesterday))
    path = dom_utils.get_date_as_filename('report-enviro', 'json', yesterday)
    if data_files.check_if_report_was_generated(path):
        logger.info(
            'Report was generated. Getting report from file using path: {}'.
            format(path))
        return data_files.load_report(path)
    else:
        logger.info('Generating report')
        report = report_generator.generate_enviro_report_for_yesterday()
        email_sender_service.send(report, 'Report')
        data_files.save_report(
            report,
            dom_utils.get_date_as_filename('report-enviro', 'json', yesterday))
        return report
Exemple #6
0
def get_airplane_for_yesterday():
    logger.info('Getting all flights with flights name yesterday')
    return get_all_airplanes_for(dom_utils.get_yesterday_date())
Exemple #7
0
def is_report_file_exists() -> bool:
    report_file_path = '{}/{}'.format(
        config_service.get_report_path_at_server(),
        dom_utils.get_date_as_filename('report', 'json',
                                       dom_utils.get_yesterday_date()))
    return os.path.exists(report_file_path)