diff --git a/app.py b/app.py
index 427ce51..43dfdb3 100644
--- a/app.py
+++ b/app.py
@@ -8,6 +8,8 @@ app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql:///forget'
app.config['SQLALCHEMY_ECHO'] = True
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
+app.secret_key = 'hunter2'
+
metadata = MetaData(naming_convention = {
"ix": 'ix_%(column_0_label)s',
"uq": "uq_%(table_name)s_%(column_0_name)s",
diff --git a/lib.py b/lib.py
deleted file mode 100644
index 5adf6ea..0000000
--- a/lib.py
+++ /dev/null
@@ -1,10 +0,0 @@
-from model import User
-from flask import request
-from functools import update_wrapper
-
-def require_auth(fun):
- # TODO actual auth and session checking and such
- def newfun(*args, **kwargs):
- fun(User.query.get('8080418'), *args, **kwargs)
- update_wrapper(newfun, fun)
- return newfun
diff --git a/migrations/versions/8e80a277cdb5_init.py b/migrations/versions/8e80a277cdb5_init.py
deleted file mode 100644
index 138c9c7..0000000
--- a/migrations/versions/8e80a277cdb5_init.py
+++ /dev/null
@@ -1,55 +0,0 @@
-"""init
-
-Revision ID: 8e80a277cdb5
-Revises:
-Create Date: 2017-07-25 20:02:00.543026
-
-"""
-from alembic import op
-import sqlalchemy as sa
-
-
-# revision identifiers, used by Alembic.
-revision = '8e80a277cdb5'
-down_revision = None
-branch_labels = None
-depends_on = None
-
-
-def upgrade():
- op.create_table('users',
- sa.Column('created_at', sa.DateTime(), nullable=False),
- sa.Column('updated_at', sa.DateTime(), nullable=False),
- sa.Column('display_name', sa.String(), nullable=True),
- sa.Column('id', sa.Integer(), nullable=False),
- sa.PrimaryKeyConstraint('id', name=op.f('pk_users'))
- )
- op.create_table('account',
- sa.Column('created_at', sa.DateTime(), nullable=False),
- sa.Column('updated_at', sa.DateTime(), nullable=False),
- sa.Column('user_id', sa.Integer(), nullable=True),
- sa.Column('remote_id', sa.String(), nullable=False),
- sa.Column('service', sa.Enum('twitter', name='enum_services'), nullable=False),
- sa.Column('credentials', sa.JSON(), nullable=True),
- sa.Column('policy_enabled', sa.Boolean(), nullable=True),
- sa.Column('policy_keep_younger', sa.Interval(), nullable=True),
- sa.Column('policy_keep_latest', sa.Integer(), nullable=True),
- sa.Column('policy_delete_every', sa.Interval(), nullable=True),
- sa.Column('policy_ignore_favourites', sa.Boolean(), nullable=True),
- sa.ForeignKeyConstraint(['user_id'], ['users.id'], name=op.f('fk_account_user_id_users')),
- sa.PrimaryKeyConstraint('remote_id', 'service', name=op.f('pk_account'))
- )
- op.create_table('sessions',
- sa.Column('created_at', sa.DateTime(), nullable=False),
- sa.Column('updated_at', sa.DateTime(), nullable=False),
- sa.Column('user_id', sa.Integer(), nullable=True),
- sa.Column('token', sa.String(), nullable=False),
- sa.ForeignKeyConstraint(['user_id'], ['users.id'], name=op.f('fk_sessions_user_id_users')),
- sa.PrimaryKeyConstraint('token', name=op.f('pk_sessions'))
- )
-
-
-def downgrade():
- op.drop_table('sessions')
- op.drop_table('account')
- op.drop_table('users')
diff --git a/model.py b/model.py
index bcf8724..fdc9fc0 100644
--- a/model.py
+++ b/model.py
@@ -3,8 +3,8 @@ from datetime import datetime
from app import db
class TimestampMixin(object):
- created_at = db.Column(db.DateTime, default=datetime.utcnow, nullable=False)
- updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow, nullable=False)
+ created_at = db.Column(db.DateTime, server_default=db.func.now())
+ updated_at = db.Column(db.DateTime, server_default=db.func.now(), onupdate=db.func.now())
class User(db.Model, TimestampMixin):
__tablename__ = 'users'
@@ -15,25 +15,17 @@ class User(db.Model, TimestampMixin):
class Account(db.Model, TimestampMixin):
user = db.relationship(User)
- user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
+ user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
- remote_id = db.Column(db.String, primary_key=True)
service = db.Column(
db.Enum("twitter", name="enum_services")
, primary_key=True)
+ remote_id = db.Column(db.String, primary_key=True)
+
credentials = db.Column(db.JSON)
- policy_enabled = db.Column(db.Boolean, default=False)
+ policy_enabled = db.Column(db.Boolean, server_default='FALSE', nullable=False)
policy_keep_younger = db.Column(db.Interval)
policy_keep_latest = db.Column(db.Integer)
policy_delete_every = db.Column(db.Interval)
- policy_ignore_favourites = db.Column(db.Boolean, default=True)
-
-class Session(db.Model, TimestampMixin):
- __tablename__ = 'sessions'
-
- user = db.relationship(User)
- user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
-
- token = db.Column(db.String, primary_key=True)
-
+ policy_ignore_favourites = db.Column(db.Boolean, server_default='TRUE')
diff --git a/routes.py b/routes.py
index 4d928d6..b4596dc 100644
--- a/routes.py
+++ b/routes.py
@@ -1,9 +1,20 @@
from app import app
-from flask import request, Response
-from lib import require_auth
+from flask import render_template, session, url_for, redirect
+from datetime import datetime
@app.route('/')
-@require_auth
-def index(viewer):
- return "Hello, %s (%s)" % (viewer.name, viewer.twitter_id)
+def index():
+ return render_template('index.html')
+@app.route('/login/twitter')
+def debug_login():
+ session['display_name'] = 'codl'
+ session['created_at'] = datetime.now()
+ return redirect(url_for('index'))
+
+@app.route('/logout')
+def logout():
+ keys = list(session.keys())
+ for key in keys:
+ del session[key]
+ return redirect(url_for('index'))
diff --git a/templates/index.html b/templates/index.html
new file mode 100644
index 0000000..70e148a
--- /dev/null
+++ b/templates/index.html
@@ -0,0 +1,6 @@
+{% if session %}
+ Hello, {{session['display_name']}}! Log out
+ {{session['created_at']}}
+{% else %}
+ Hello, stranger! Log in with Twitter
+{% endif %}