routing updated to be more variable and on demand
- calendar json file now generated on demand at download request - device fingerprint route now added
This commit is contained in:
@ -6,7 +6,7 @@ import sqlite3
|
||||
# Third-party libraries
|
||||
import flask
|
||||
from flask import render_template, flash
|
||||
from flask import Flask, redirect, request, url_for
|
||||
from flask import Flask, redirect, request, url_for, jsonify
|
||||
from flask_login import (
|
||||
LoginManager,
|
||||
current_user,
|
||||
@ -18,6 +18,7 @@ import requests
|
||||
|
||||
import server.googleHandler as google
|
||||
|
||||
from backend.Routine import Routine
|
||||
from server import login_manager, app, db
|
||||
from server.forms import LoginForm, RegistrationForm, DeviceForm
|
||||
from server.models import User, Calendar, Device
|
||||
@ -116,6 +117,9 @@ def deleteAccount():
|
||||
|
||||
@app.route("/login/google")
|
||||
def googlelogin():
|
||||
if current_user.is_authenticated and current_user.getGoogleCredentials() != None:
|
||||
return redirect(url_for('account'))
|
||||
|
||||
authorization_url = google.login()
|
||||
|
||||
return flask.redirect(authorization_url)
|
||||
@ -123,6 +127,9 @@ def googlelogin():
|
||||
@app.route("/login/google/callback")
|
||||
def callback():
|
||||
session, credentials = google.verifyResponse()
|
||||
|
||||
if current_user.is_authenticated and current_user.getGoogleCredentials == None:
|
||||
current_user.setGoogleCredentials(credentials)
|
||||
userinfo = session.get('https://www.googleapis.com/userinfo/v2/me').json()
|
||||
|
||||
# Create a user in your db with the information provided
|
||||
@ -166,11 +173,25 @@ def credentials_to_dict(credentials):
|
||||
'scopes': credentials.scopes}
|
||||
|
||||
|
||||
@app.route("/userinfo/<path:user>/calendarevents.json")
|
||||
def downloader(user):
|
||||
path = "/home/calendarwatch/userinfo/" + user + "/"
|
||||
print(path, flush=True)
|
||||
return flask.send_from_directory(path, "calendarevents.json")
|
||||
@app.route("/userinfo/<path:device>/calendarevents.json")
|
||||
def downloader(device):
|
||||
path = "/home/calendarwatch/userinfo/" + device + "/"
|
||||
# return flask.send_from_directory(path, "calendarevents.json")
|
||||
request_user = db.session.query(User).filter(User.id==device).first()
|
||||
if request_user == None:
|
||||
return jsonify(kind="unregistered")
|
||||
|
||||
routine = Routine()
|
||||
routine.updateCalendar(request_user)
|
||||
return jsonify(request_user.getJson())
|
||||
|
||||
@app.route("/devicefingerprint.json")
|
||||
def generateDeviceFingerprint():
|
||||
# Create Three Random Words
|
||||
# check not in Device Database
|
||||
# Save as new Device
|
||||
# Send to User
|
||||
return jsonify(deviceId="Carrot-Enamel-Storm")
|
||||
|
||||
# POST
|
||||
|
||||
|
Reference in New Issue
Block a user