from flask import Flask, jsonify, request, render_template
from elasticsearch import Elasticsearch

from queries.fuzzy import fuzzy_search

app = Flask(__name__, template_folder=".")


@app.route("/")
def hello():
    return render_template("doc/swagger-ui/" + "index.html")


@app.route("/search")
def search():
    """
    Route to do a fuzzy-search for textversions.

    :return: Results of the fuzzy-search.
    """
    text = request.args.get("q")
    elastic = Elasticsearch([{"host": "elasticsearch", "port": 9200}])
    result = elastic.search(index="textversions", doc_type="record", body=fuzzy_search(text))
    return jsonify(result=result["hits"]["hits"])


if __name__ == "__main__":
    app.run(host="0.0.0.0", use_reloader=True, use_debugger=True, use_evalex=True)