adds template structure

This commit is contained in:
2020-04-10 09:53:25 +00:00
parent bcb3b1bbac
commit 53a1f201f8
5 changed files with 150 additions and 15 deletions

45
app.py
View File

@ -42,7 +42,9 @@ GOOGLE_DISCOVERY_URL = (
"https://accounts.google.com/.well-known/openid-configuration"
)
# Flask app setup
app = Flask(__name__)
app = Flask(__name__,
static_folder='static',
template_folder='template')
app.secret_key = os.environ.get("SECRET_KEY") or os.urandom(24)
# User session management setup
@ -66,27 +68,43 @@ def load_user(user_id):
return User.get(user_id)
@app.route("/")
def account():
return flask.redirect('account')
@app.route("/account")
def index():
if current_user.is_authenticated:
return (
"<p>Hello, {}! You're logged in! Email: {}</p>"
"<div><p>Google Profile Picture:</p>"
'<img src="{}" alt="Google profile pic"></img></div>'
'<a class="button" href="/logout">Logout</a>'
'<a class="button" href="/test">test API</a>'.format(
current_user.name, current_user.email, current_user.profile_pic
return (flask.render_template('account.html',
username = current_user.name, email = current_user.email, profile_img=current_user.profile_pic
)
)
else:
return '<a class="button" href="/login">Google Login</a>'
return flask.render_template('login.html')
def get_google_provider_cfg():
return requests.get(GOOGLE_DISCOVERY_URL).json()
class Calendar:
def __init__(self, name, color):
self.name = name
self.color = color
@app.route("/calendar")
def calendar():
ca1 = Calendar("Hightower", "#30ff30")
ca2 = Calendar("Toast", "#66e230")
calendars = [ca1, ca2]
return flask.render_template('calendar.html', calendars=calendars)
@app.route('/test')
def test_api_request():
if 'credentials' not in flask.session:
return flask.redirect('login')
return flask.redirect('login/google')
# Load credentials from the session.
credentials = google.oauth2.credentials.Credentials(
@ -102,7 +120,7 @@ def test_api_request():
return flask.jsonify(todaysCal)
@app.route("/login")
@app.route("/login/google")
def login():
'''
@ -140,12 +158,9 @@ def login():
# Store the state so the callback can verify the auth server response.
flask.session['state'] = state
print("auth_url: " + authorization_url)
print("state: " + state)
return flask.redirect(authorization_url)
@app.route("/login/callback")
@app.route("/login/google/callback")
def callback():
# Specify the state when creating the flow in the callback so that it can
# verified in the authorization server response.