if res:
return Profile(self.backend, res.id, res)
+ def get_profile_with_data(self, public_id, when=None):
+ res = self.db.get("WITH profiles AS (SELECT fireinfo_profiles_with_data_at(%s) AS id) \
+ SELECT * FROM profiles JOIN fireinfo_profiles ON profiles.id = fireinfo_profiles.id \
+ WHERE public_id = %s ORDER BY time_updated DESC LIMIT 1", when, public_id)
+
+ if res:
+ return Profile(self.backend, res.id, res)
+
def get_profiles(self, public_id):
res = self.db.query("SELECT * FROM fireinfo_profiles \
WHERE public_id = %s ORDER BY time_created DESC", public_id)
else:
logging.info("Rendering new image for profile: %s" % profile_id)
+ profile = self.fireinfo.get_profile_with_data(profile_id, when=when)
+ if not profile:
+ raise tornado.web.HTTPError(404, "Profile '%s' was not found." % profile_id)
+
image_cls = self.iuse.get_imagetype(image_id)
if not image_cls:
raise tornado.web.HTTPError(404, "Image class is unknown: %s" % image_id)
- profile = self.fireinfo.get_profile(profile_id, when=when)
- if not profile:
- raise tornado.web.HTTPError(404, "Profile '%s' was not found." % profile_id)
-
# Render the image
image = image_cls(self.backend, self, profile).to_string()
self.set_header("Content-Type", "image/png")
self.write(image)
-