From 4a692d555e4bed0d7ce24fefa19521ef6d88b7e1 Mon Sep 17 00:00:00 2001 From: Rebecca Law Date: Wed, 13 Jan 2016 17:08:57 +0000 Subject: [PATCH] Create a relationship between services and tokens --- app/dao/services_dao.py | 1 + app/models.py | 3 ++- app/schemas.py | 2 +- .../{0002_create_tokens.py => 0003_create_tokens.py} | 8 ++++---- 4 files changed, 8 insertions(+), 6 deletions(-) rename migrations/versions/{0002_create_tokens.py => 0003_create_tokens.py} (84%) diff --git a/app/dao/services_dao.py b/app/dao/services_dao.py index 54fb5dd01..8cbf8d518 100644 --- a/app/dao/services_dao.py +++ b/app/dao/services_dao.py @@ -7,6 +7,7 @@ from app.models import (Service, User) def save_model_service(service, update_dict=None): + print(update_dict) users_list = update_dict.get('users', []) if update_dict else getattr(service, 'users', []) if not users_list: error_msg = {'users': ['Missing data for required attribute']} diff --git a/app/models.py b/app/models.py index 99e5902bc..0e4b13609 100644 --- a/app/models.py +++ b/app/models.py @@ -65,8 +65,9 @@ class Token(db.Model): __tablename__ = 'tokens' id = db.Column(db.Integer, primary_key=True) - token = db.Column(db.String, unique=True, nullable=False) + token = db.Column(db.String(255), unique=True, nullable=False) service_id = db.Column(db.Integer, db.ForeignKey('services.id'), index=True, nullable=False) + service = db.relationship('Service', backref=db.backref('tokens', lazy='dynamic')) expiry_date = db.Column(db.DateTime) diff --git a/app/schemas.py b/app/schemas.py index 47d2f0843..f19847972 100644 --- a/app/schemas.py +++ b/app/schemas.py @@ -19,7 +19,7 @@ class UserSchema(ma.ModelSchema): class ServiceSchema(ma.ModelSchema): class Meta: model = models.Service - exclude = ("updated_at", "created_at", "templates") + exclude = ("updated_at", "created_at", "tokens", "templates") class TemplateSchema(ma.ModelSchema): diff --git a/migrations/versions/0002_create_tokens.py b/migrations/versions/0003_create_tokens.py similarity index 84% rename from migrations/versions/0002_create_tokens.py rename to migrations/versions/0003_create_tokens.py index fa8e534e7..7fdb034bb 100644 --- a/migrations/versions/0002_create_tokens.py +++ b/migrations/versions/0003_create_tokens.py @@ -1,13 +1,13 @@ """empty message -Revision ID: 0002_create_api_token +Revision ID: 0003_create_tokens Revises: 0001_initialise_data -Create Date: 2016-01-13 10:21:14.651691 +Create Date: 2016-01-13 17:07:49.061776 """ # revision identifiers, used by Alembic. -revision = '0002_create_api_token' +revision = '0003_create_tokens' down_revision = '0001_initialise_data' from alembic import op @@ -18,7 +18,7 @@ def upgrade(): ### commands auto generated by Alembic - please adjust! ### op.create_table('tokens', sa.Column('id', sa.Integer(), nullable=False), - sa.Column('token', sa.String(), nullable=False), + sa.Column('token', sa.String(length=255), nullable=False), sa.Column('service_id', sa.Integer(), nullable=False), sa.Column('expiry_date', sa.DateTime(), nullable=True), sa.ForeignKeyConstraint(['service_id'], ['services.id'], ),