def get(self, year=None, month=None, day=None): ''' the get request ''' if year == 'latest': data = jsonify_blog_post('2014', '01', '10') elif year == 'map': data = fetch_blog_map() else: data = jsonify_blog_post(year, month, day) self.response.headers['Content-Type'] = 'application/json' self.response.out.write(data)
def test_jsonify_blog_post_for_known_blog_file(self): ''' test a call to jsonify a known blog posts returns the expected json object ''' json_blog_object = jsonify_blog_post('2014','01','03') self.assertIsNotNone(jsonify_blog_post) blog_data = json.loads(json_blog_object) self.assertEqual("10 Posts in 10 Days", blog_data['title']) self.assertEqual('2014', blog_data['year']) self.assertEqual('01', blog_data['month']) self.assertEqual('03', blog_data['day'])
def fetch_blog_map(): ''' return the a json object containing a list of references to all blog files ''' file_list = discover_blog_files() file_list.sort() file_list.reverse() data = [] for f in file_list: re_match = re.search('(\d+)/(\d+)/(\d+)', f) year = re_match.group(1) month = re_match.group(2) day = re_match.group(3) blog_json_object = json.loads(jsonify_blog_post(year, month, day)) data.append(blog_json_object) return json.dumps(data)
def get(self, year=None, month=None, day=None): ''' handle the get request ''' blog = jsonify_blog_post(year, month, day) self.render('single_blog_page.html', blog = json.loads(blog))