Skip to content

Commit 3d48942

Browse files
author
Miles Crabbe
committed
-cacheing
1 parent e69d56d commit 3d48942

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

application.py

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
APOD_METHOD_NAME = 'apod'
4141
ALLOWED_APOD_FIELDS = ['concept_tags', 'date', 'hd', 'count', 'start_date', 'end_date', 'thumbs']
4242
ALCHEMY_API_KEY = None
43-
43+
RESULTS_DICT = dict([])
4444
try:
4545
with open('alchemy_api.key', 'r') as f:
4646
ALCHEMY_API_KEY = f.read()
@@ -128,21 +128,36 @@ def _get_json_for_date(input_date, use_concept_tags, thumbs):
128128
# fall back to using today's date IF they didn't specify a date
129129
use_default_today_date = True
130130
dt = input_date # None
131+
key = datetime.utcnow().date()
132+
key = str(key.year)+'y'+str(key.month)+'m'+str(key.day)+'d'+str(use_concept_tags)+str(thumbs)
131133

132134
# validate input date
133135
else:
136+
134137
dt = datetime.strptime(input_date, '%Y-%m-%d').date()
135138
_validate_date(dt)
139+
key = str(dt.year)+'y'+str(dt.month)+'m'+str(dt.day)+'d'+str(use_concept_tags)+str(thumbs)
136140

137141
# get data
138-
data = _apod_handler(dt, use_concept_tags, use_default_today_date, thumbs)
142+
if key in RESULTS_DICT.keys():
143+
data = RESULTS_DICT[key]
144+
else:
145+
data = _apod_handler(dt, use_concept_tags, use_default_today_date, thumbs)
146+
139147

140148
# Handle case where no data is available
141149
if not data:
142150
return _abort(code=404, msg=f"No data available for date: {input_date}", usage=False)
151+
143152

144153
data['service_version'] = SERVICE_VERSION
145154

155+
#Volatile caching dict
156+
datadate = datetime.strptime(data['date'], '%Y-%m-%d').date()
157+
key = str(datadate.year)+'y'+str(datadate.month)+'m'+str(datadate.day)+'d'+str(use_concept_tags)+str(thumbs)
158+
RESULTS_DICT[key] = data
159+
160+
146161
# return info as JSON
147162
return jsonify(data)
148163

0 commit comments

Comments
 (0)