def cache_graph():
    print('Fetching Fresh US Graph Data')
    final_js_str = ''
    try:
        url = 'https://api.covid19api.com/country/us/status/confirmed'
        resp = requests.get(url)
        js = resp.json()

        day_dict = {}
        for case in js:
            if case['Cases'] > 0 and case['Status'] == 'confirmed':
                date = case['Date'].split('T')[0]
                fixed_date = '%sT00:00:00Z' % date

                if fixed_date not in day_dict:
                    day_dict[fixed_date] = 0
                day_dict[fixed_date] += case['Cases']

        day_js = []
        for key in day_dict.keys():
            small_js = {
                'Date': key,
                'Cases': day_dict[key],
                'Status': 'confirmed'
            }
            day_js.append(small_js)
        final_js_str = json.dumps(day_js)
    except:
        print('Failed Fetching US Graph Data')

    session = Session()
    us_graph = session.query(GraphCache).filter_by(
        country='us', data_type='country').first()
    if us_graph == None:
        us_graph = GraphCache(country='us', data_type='country')
        session.add(us_graph)
    if final_js_str != '' and final_js_str != None:
        us_graph.json = final_js_str
    session.commit()
    session.close()
def cache_summary():
    print('Fetching Fresh Graph Summary Data')
    final_js_str = ''
    try:
        final_dict = {}
        url = 'https://api.covid19api.com/summary'
        resp = requests.get(url)
        js = resp.json()

        final_dict['Global'] = js['Global']

        country_dict = []
        for case in js["Countries"]:
            if case['Slug'] == 'united-states' and case['TotalDeaths'] == 0:
                return
            country_dict.append({
                "Country": case['Country'],
                "Slug": case['Slug'],
                "TotalConfirmed": case['TotalConfirmed'],
                "TotalDeaths": case['TotalDeaths'],
                "TotalRecovered": case['TotalRecovered']
            })

        final_dict['Countries'] = country_dict
        final_js_str = json.dumps(final_dict)
    except:
        print('Failed Fetching Graph Summary Data')
        return

    session = Session()
    us_graph = session.query(GraphCache).filter_by(
        country='us', data_type='summary').first()
    if us_graph == None:
        us_graph = GraphCache(country='us', data_type='summary')
        session.add(us_graph)
    if final_js_str != '' and final_js_str != None:
        us_graph.json = final_js_str
    session.commit()
    session.close()