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()