From db38cea0de71881f3bd79b5373c43ba78e9b2a3c Mon Sep 17 00:00:00 2001
From: Anton Sarukhanov <code@ant.sr>
Date: Wed, 4 May 2016 18:40:48 -0400
Subject: [PATCH] Cache AJAX responses for 5 seconds

---
 app.py           | 5 +++++
 requirements.txt | 1 +
 2 files changed, 6 insertions(+)

diff --git a/app.py b/app.py
index 4c479fb..46b9b77 100644
--- a/app.py
+++ b/app.py
@@ -1,6 +1,7 @@
 import os
 from flask import Flask, jsonify, make_response, render_template, request, abort
 from flask.ext.bower import Bower
+from flask.ext.cachecontrol import FlaskCacheControl, cache_for
 from jinja2.exceptions import TemplateNotFound
 from sqlalchemy.orm import joinedload
 from models import db, Agency
@@ -20,6 +21,9 @@ db.init_app(app)
 
 Bower(app)
 
+cache_control = FlaskCacheControl()
+cache_control.init_app(app)
+
 # Flask Web Routes
 @app.route('/')
 def map():
@@ -43,6 +47,7 @@ def map_embed(mode):
         return render_template('predictions.html', agency=agency, config=app.config, embed=True)
 
 @app.route('/ajax')
+@cache_for(seconds=5)
 def ajax():
     """ Handle all async requests (from JS). """
     query = request.args.get('query')
diff --git a/requirements.txt b/requirements.txt
index a7a4fa6..6cb4b21 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,5 +1,6 @@
 Flask==0.10.1
 Flask-Bower==1.2.1
+Flask-CacheControl==0.1.2
 Flask-Celery-Helper==1.1.0
 Flask-Migrate==1.6.0
 Flask-SQLAlchemy==2.1
-- 
GitLab