From 43f2605ac459f4184b870ba2c520656de551cc03 Mon Sep 17 00:00:00 2001 From: Rebecca Law Date: Tue, 15 Dec 2015 09:28:15 +0000 Subject: [PATCH] 110067722: Post add-service endpoint saves the service and maps it to the user. --- app/main/dao/services_dao.py | 13 ++++++++----- app/main/views/add_service.py | 6 ++++-- app/models.py | 2 -- migrations/versions/60_add_service.py | 5 +---- tests/app/main/views/test_add_service.py | 4 +++- 5 files changed, 16 insertions(+), 14 deletions(-) diff --git a/app/main/dao/services_dao.py b/app/main/dao/services_dao.py index 6d1f11aeb..dff0e3a68 100644 --- a/app/main/dao/services_dao.py +++ b/app/main/dao/services_dao.py @@ -10,11 +10,14 @@ def insert_new_service(service_name, user): limit=1000, active=False, restricted=True) - - add_service(service) - service.users.append(user) - db.session.commit() - return service.id + try: + add_service(service) + service.users.append(user) + db.session.commit() + return service.id + except Exception as e: + print(e) + raise e def get_service_by_id(id): diff --git a/app/main/views/add_service.py b/app/main/views/add_service.py index 4d91f97f0..4d03be4f8 100644 --- a/app/main/views/add_service.py +++ b/app/main/views/add_service.py @@ -1,7 +1,8 @@ -from flask import render_template, jsonify, redirect +from flask import render_template, jsonify, redirect, session from flask_login import login_required from app.main import main +from app.main.dao import services_dao, users_dao from app.main.forms import AddServiceForm @@ -17,7 +18,8 @@ def process_add_service(): form = AddServiceForm() if form.validate_on_submit(): - + user = users_dao.get_user_by_id(session['user_id']) + services_dao.insert_new_service(form.service_name.data, user) return redirect('/dashboard') else: return jsonify(form.errors), 400 diff --git a/app/models.py b/app/models.py index f7b21e81a..d420c9070 100644 --- a/app/models.py +++ b/app/models.py @@ -91,8 +91,6 @@ class Service(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(255), nullable=False, unique=True) - - token_id = db.Column(db.BigInteger, index=True, unique=True) created_at = db.Column(db.DateTime, index=False, unique=False, nullable=False) active = db.Column(db.Boolean, index=False, unique=False, nullable=False) limit = db.Column(db.BigInteger, index=False, unique=False, nullable=False) diff --git a/migrations/versions/60_add_service.py b/migrations/versions/60_add_service.py index eca5d0b72..5dd28284d 100644 --- a/migrations/versions/60_add_service.py +++ b/migrations/versions/60_add_service.py @@ -2,7 +2,7 @@ Revision ID: 60_add_service Revises: 50_alter_verify_code_type -Create Date: 2015-12-14 16:55:56.612005 +Create Date: 2015-12-15 09:25:09.000431 """ @@ -19,7 +19,6 @@ def upgrade(): op.create_table('services', sa.Column('id', sa.Integer(), nullable=False), sa.Column('name', sa.String(length=255), nullable=False), - sa.Column('token_id', sa.BigInteger(), nullable=True), sa.Column('created_at', sa.DateTime(), nullable=False), sa.Column('active', sa.Boolean(), nullable=False), sa.Column('limit', sa.BigInteger(), nullable=False), @@ -27,7 +26,6 @@ def upgrade(): sa.PrimaryKeyConstraint('id'), sa.UniqueConstraint('name') ) - op.create_index(op.f('ix_services_token_id'), 'services', ['token_id'], unique=True) op.create_table('user_to_service', sa.Column('user_id', sa.Integer(), nullable=True), sa.Column('service_id', sa.Integer(), nullable=True), @@ -40,6 +38,5 @@ def upgrade(): def downgrade(): ### commands auto generated by Alembic - please adjust! ### op.drop_table('user_to_service') - op.drop_index(op.f('ix_services_token_id'), table_name='services') op.drop_table('services') ### end Alembic commands ### diff --git a/tests/app/main/views/test_add_service.py b/tests/app/main/views/test_add_service.py index 3083e5180..8264a0f23 100644 --- a/tests/app/main/views/test_add_service.py +++ b/tests/app/main/views/test_add_service.py @@ -1,4 +1,4 @@ -from app.main.dao import verify_codes_dao +from app.main.dao import verify_codes_dao, services_dao from tests.app.main import create_test_user @@ -24,3 +24,5 @@ def test_should_add_service_and_redirect_to_next_page(notifications_admin, notif response = client.post('/add-service', data={'service_name': 'testing the post'}) assert response.status_code == 302 assert response.location == 'http://localhost/dashboard' + saved_service = services_dao.find_service_by_service_name('testing the post') + assert saved_service is not None