Skip to content

Commit 68d52b9

Browse files
authored
Merge pull request #8 from brionmario/feature/applications
fix(models): fix data type issues in models 🐛
2 parents 7b24b89 + 1c1ed8f commit 68d52b9

File tree

8 files changed

+20
-67
lines changed

8 files changed

+20
-67
lines changed

app/models/application.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ class Application(db.Model):
1313
developer = db.Column(db.String(100), nullable=False)
1414
type_id = db.Column(db.Integer, db.ForeignKey('application_type.id', use_alter=True, name='fk_type_id'), nullable=False)
1515
description = db.Column(db.String(250), nullable=False)
16+
public_sharing = db.Column(db.Boolean, nullable=False, default=False)
1617
creation_date = db.Column(db.TIMESTAMP, server_default=db.func.current_timestamp(), nullable=False)
1718
genre_id = db.Column(db.Integer, db.ForeignKey('genre.id', use_alter=True, name='fk_genre_id'), nullable=False)
1819
sessions = db.relationship('Session', backref='app', lazy='dynamic')
@@ -38,3 +39,4 @@ class ApplicationSchema(ma.Schema):
3839
description = fields.String(required=True, validate=validate.Length(1, 250))
3940
creation_date = fields.DateTime()
4041
genre = fields.Nested(GenreSchema, dump_only=True)
42+
public_sharing = fields.Boolean(required=True)

app/models/application_type.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ def __repr__(self):
5050

5151

5252
class ApplicationTypeSchema(ma.Schema):
53-
id = fields.Integer()
53+
id = fields.Integer(dump_only=True)
5454
name = fields.String(required=True)
5555
display_name = fields.String(required=True)
5656
display_name_full = fields.String(required=True)

app/models/genre.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,6 @@ def __repr__(self):
4848

4949

5050
class GenreSchema(ma.Schema):
51-
id = fields.Integer()
51+
id = fields.Integer(dump_only=True)
5252
name = fields.String(required=True)
5353
display_name = fields.String(required=True)

app/models/questionnaire.py

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from marshmallow import fields, validate
1+
from marshmallow import fields
22
from .. import db, ma
33

44

@@ -19,14 +19,8 @@ def __repr__(self):
1919
return '<Questionnaire %r>' % self.id
2020

2121

22-
class SymptomSchema(ma.Schema):
23-
name = fields.String(required=False)
24-
display_name = fields.String(required=False)
25-
score = fields.String(required=False)
26-
27-
2822
class QuestionnaireSchema(ma.Schema):
2923
id = fields.Integer(dump_only=True)
30-
pre = fields.List(fields.Nested(SymptomSchema), dump_only=True)
31-
post = fields.List(fields.Nested(SymptomSchema), dump_only=True)
24+
pre = fields.Dict(required=True)
25+
post = fields.Dict(required=False)
3226
creation_date = fields.DateTime()

app/models/session.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ class Session(db.Model):
1010
id = db.Column(db.Integer, primary_key=True)
1111
app_id = db.Column(db.Integer, db.ForeignKey('application.id', use_alter=True, name='fk_app_id'), nullable=False)
1212
creation_date = db.Column(db.TIMESTAMP, server_default=db.func.current_timestamp(), nullable=False)
13-
expected_emotions = db.Column(db.JSON, nullable=False)
13+
expected_emotions = db.Column(db.PickleType, nullable=False)
1414
questionnaire_id = db.Column(db.Integer, db.ForeignKey('questionnaire.id', use_alter=True, name='fk_questionnaire_id'), nullable=False)
1515
cssi_score = db.Column(db.Float, nullable=False, default=0)
1616
latency_scores = db.Column(db.JSON, nullable=False, default={})

app/routes/v1/questionnaire.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
from flask import Blueprint, jsonify, request
1919
from flask_cors import cross_origin
20-
from app.models import Questionnaire, ApplicationType, QuestionnaireSchema, Genre
20+
from app.models import Questionnaire, QuestionnaireSchema
2121
from app import db
2222

2323
questionnaire = Blueprint('questionnaire', __name__)

migrations/versions/89ee48680e79_.py

Lines changed: 0 additions & 42 deletions
This file was deleted.

migrations/versions/cb018c771a53_.py renamed to migrations/versions/d874df9a1f85_.py

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
"""empty message
22
3-
Revision ID: cb018c771a53
3+
Revision ID: d874df9a1f85
44
Revises:
5-
Create Date: 2019-04-16 01:05:44.197617
5+
Create Date: 2019-04-19 01:39:08.576426
66
77
"""
88
from alembic import op
99
import sqlalchemy as sa
1010

1111

1212
# revision identifiers, used by Alembic.
13-
revision = 'cb018c771a53'
13+
revision = 'd874df9a1f85'
1414
down_revision = None
1515
branch_labels = None
1616
depends_on = None
@@ -25,6 +25,7 @@ def upgrade():
2525
sa.Column('developer', sa.String(length=100), nullable=False),
2626
sa.Column('type_id', sa.Integer(), nullable=False),
2727
sa.Column('description', sa.String(length=250), nullable=False),
28+
sa.Column('public_sharing', sa.Boolean(), nullable=False),
2829
sa.Column('creation_date', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False),
2930
sa.Column('genre_id', sa.Integer(), nullable=False),
3031
sa.ForeignKeyConstraint(['genre_id'], ['genre.id'], name='fk_genre_id', use_alter=True),
@@ -46,25 +47,23 @@ def upgrade():
4647
)
4748
op.create_table('questionnaire',
4849
sa.Column('id', sa.Integer(), nullable=False),
49-
sa.Column('pre', sa.TEXT(), nullable=False),
50-
sa.Column('post', sa.TEXT(), nullable=False),
50+
sa.Column('pre', sa.JSON(), nullable=False),
51+
sa.Column('post', sa.JSON(), nullable=False),
5152
sa.Column('creation_date', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False),
52-
sa.Column('session_id', sa.Integer(), nullable=False),
53-
sa.ForeignKeyConstraint(['session_id'], ['session.id'], name='fk_session_id', use_alter=True),
5453
sa.PrimaryKeyConstraint('id')
5554
)
5655
op.create_table('session',
5756
sa.Column('id', sa.Integer(), nullable=False),
5857
sa.Column('app_id', sa.Integer(), nullable=False),
5958
sa.Column('creation_date', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False),
60-
sa.Column('expected_emotions', sa.TEXT(), nullable=False),
59+
sa.Column('expected_emotions', sa.PickleType(), nullable=False),
60+
sa.Column('questionnaire_id', sa.Integer(), nullable=False),
6161
sa.Column('cssi_score', sa.Float(), nullable=False),
62-
sa.Column('latency_scores', sa.TEXT(), nullable=False),
62+
sa.Column('latency_scores', sa.JSON(), nullable=False),
6363
sa.Column('total_latency_score', sa.Float(), nullable=False),
64-
sa.Column('sentiment_scores', sa.TEXT(), nullable=False),
64+
sa.Column('sentiment_scores', sa.JSON(), nullable=False),
6565
sa.Column('total_sentiment_score', sa.Float(), nullable=False),
66-
sa.Column('questionnaire_id', sa.Integer(), nullable=False),
67-
sa.Column('questionnaire_scores', sa.TEXT(), nullable=True),
66+
sa.Column('questionnaire_scores', sa.JSON(), nullable=True),
6867
sa.Column('total_questionnaire_score', sa.Float(), nullable=False),
6968
sa.ForeignKeyConstraint(['app_id'], ['application.id'], name='fk_app_id', use_alter=True),
7069
sa.ForeignKeyConstraint(['questionnaire_id'], ['questionnaire.id'], name='fk_questionnaire_id', use_alter=True),

0 commit comments

Comments
 (0)