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)
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
def get_airplane_for_yesterday(): logger.info('Getting all flights with flights name yesterday') return get_all_airplanes_for(dom_utils.get_yesterday_date())
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)