"""Routes table."""
import json, surveyparser, security
from bottle import Bottle, route, view, request, abort

table = Bottle()

@table.route("/surveys/<name>/table")
@view("table")
def get_table(name):
    """Present table for a survey and filter if filters passed thru GET params."""
    # Make sure user has perms. to see the survey, otherwise respond 403
    session = request.environ.get("beaker.session")
    if not security.has_survey(session.get("username"), name):
        abort(403)

    # Filter from filters passed in GET parameters
    survey, properties = surveyparser.get_survey(name)
    if request.query.get("selected_answers"):
        selected_answers = json.loads(request.query.get("selected_answers"))
        survey = surveyparser.filter_survey(survey, properties, surveyparser.get_metadata(name), selected_answers)

    return dict(survey_name = name, filtered = survey)
