from functools import wraps import json from os import environ from pathlib import Path from random import randbytes from sys import stderr from flask import Flask, redirect, session, g from roc_fnb.util.env_file import env_file from roc_fnb.util import log from roc_fnb.website.database import Database from roc_fnb.website.server.user import setup_user_routes from roc_fnb.website.models.user import JwtUser db = Database.from_env() app = Flask( import_name=__name__.split('.')[0], static_url_path='/', template_folder=Path(__file__).absolute().parent / 'templates', static_folder=Path(__file__).absolute().parent / 'static', ) app.secret_key = env_file( 'FLASK_SECRET', default_file='./flask.secret', default_fn=lambda: randbytes(12) ) APP_HOSTNAME = environ["APP_HOSTNAME"] @app.before_request def decode_user(): if user := session.get('user'): g.user = JwtUser.from_json(data=json.loads(user)) g.app_hostname = APP_HOSTNAME @app.route('/ig') def ig_redir(): return redirect('https://instagram.com/RocFNB') @app.route('/donate') def donate_redir(): return redirect('https://venmo.com/RocFoodNotBombs') @app.route('/') def index(): return redirect('/index.html') setup_user_routes(app, db)