import database_connector
from flask import Flask, request, render_template, session, redirect, url_for, flash
import datetime
import secrets

"""
pas de locatie id aan zoals weergeven in moderator scherm
"""
locatieid = 1

"""
test var, het het nogmaal gesproken op False
"""
debug = True

"""
database objecten, om minder te typen
"""
conn = database_connector.conn
cur = database_connector.cur

"""
stel flask in
"""
app = Flask(__name__)

"""
als debug op true is een vaste secret key gebruiken, dit is zodat we niet elke keer in hoefen te loggen na een
code wijziging. Maar in productie elke start een nieuwe token genereren
"""
if debug == True:
    app.secret_key = 'jdndhsyh83r90hfeqwf'  # dit is om live te testen
else:
    app.secret_key = secrets.token_hex(32)



def func_getlocaties(locatieid):
    cur.execute('SELECT * FROM locaties WHERE locatieid = (%s)', [locatieid])
    return cur.fetchall()[0]

def func_invoerdatabase(bericht, naamposter, locatieid):
    date = datetime.datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S")
    try:
        QUERY = 'INSERT INTO berichten(bericht, datumontvangen, locatieid, naamposter, statusid) VALUES (%s, %s, %s, %s, %s)'
        DATA = (bericht, date, locatieid, naamposter, '1')
        cur.execute(QUERY, DATA)
        conn.commit()
        return True
    except:
        return False

def func_checkinvoer(bericht, naamposter):
    if len(bericht) > 140:
        return False
    elif len(bericht) < 16:
        return False

    if len(naamposter) > 32:
        return False
    elif len(naamposter) < 3:
        return False






@app.route('/')
def root():
    return redirect(url_for('zuil'))

@app.route('/zuil')
def zuil():

    return render_template('zuil.html', locatie=func_getlocaties(locatieid))

@app.route('/zuil/post', methods=['POST'])
def zuil_post():
    flash('We hebben uw bericht ontvangen')

    return redirect(url_for('zuil'))





if __name__ == "__main__":
    app.run('0.0.0.0', debug=debug)