from flask import Flask
from flask import jsonify, request
from eu.dnetlib.exporter.ScrollResult import ScrollResult

app = Flask(__name__)

scroll_map = {}


@app.route("/new_scan", methods=['get'])
def new_scan():
    timestamp = request.args.get('timestamp')
    print(timestamp)
    active = request.args.get('active')
    if active is not None and 'false' == active.lower():
        active = False
    else:
        active = True
    s = ScrollResult()
    s.generate_scroll(timestamp=timestamp, only_active=active)
    scroll_map[str(s.id)] = s
    return jsonify(s.next_page())


@app.route("/scan/<s_id>")
def continue_scan(s_id):
    if s_id in scroll_map:
        try:
            return jsonify(scroll_map[s_id].next_page())
        except Exception as e:
            print(e)
            del(scroll_map[s_id])
            return jsonify([])
    return jsonify([])


if __name__ == '__main__':
    print("Starting flask")
    app.run(host='0.0.0.0', debug=False)
