diff --git a/app/models/application.py b/app/models/application.py index 072c094..a5e0fb4 100644 --- a/app/models/application.py +++ b/app/models/application.py @@ -37,6 +37,6 @@ class ApplicationSchema(ma.Schema): developer = fields.String(required=True, validate=validate.Length(1, 100)) type = fields.Nested(ApplicationTypeSchema, dump_only=True) description = fields.String(required=True, validate=validate.Length(1, 250)) - creation_date = fields.DateTime() + creation_date = fields.DateTime(dump_only=True) genre = fields.Nested(GenreSchema, dump_only=True) public_sharing = fields.Boolean(required=True) diff --git a/app/models/questionnaire.py b/app/models/questionnaire.py index 51cf7ae..b9a368d 100644 --- a/app/models/questionnaire.py +++ b/app/models/questionnaire.py @@ -23,4 +23,4 @@ class QuestionnaireSchema(ma.Schema): id = fields.Integer(dump_only=True) pre = fields.Dict(required=True) post = fields.Dict(required=False) - creation_date = fields.DateTime() + creation_date = fields.DateTime(dump_only=True) diff --git a/app/models/session.py b/app/models/session.py index 26bebed..810f670 100644 --- a/app/models/session.py +++ b/app/models/session.py @@ -10,7 +10,7 @@ class Session(db.Model): id = db.Column(db.Integer, primary_key=True) app_id = db.Column(db.Integer, db.ForeignKey('application.id', use_alter=True, name='fk_app_id'), nullable=False) creation_date = db.Column(db.TIMESTAMP, server_default=db.func.current_timestamp(), nullable=False) - expected_emotions = db.Column(db.PickleType, nullable=False) + expected_emotions = db.Column(db.JSON, nullable=False) questionnaire_id = db.Column(db.Integer, db.ForeignKey('questionnaire.id', use_alter=True, name='fk_questionnaire_id'), nullable=False) cssi_score = db.Column(db.Float, nullable=False, default=0) latency_scores = db.Column(db.JSON, nullable=False, default={}) @@ -31,7 +31,15 @@ def __repr__(self): class SessionSchema(ma.Schema): id = fields.Integer(dump_only=True) - creation_date = fields.DateTime() - expected_emotions = fields.List(fields.String(), dump_only=True) + creation_date = fields.DateTime(dump_only=True) + expected_emotions = fields.List(fields.String(), required=True) app = fields.Nested(ApplicationSchema, dump_only=True) questionnaire = fields.Nested(QuestionnaireSchema, dump_only=True) + cssi_score = fields.Float() + latency_scores = fields.Dict() + total_latency_score = fields.Float() + sentiment_scores = fields.Dict() + total_sentiment_score = fields.Float() + questionnaire_scores = fields.Dict() + total_questionnaire_score = fields.Float() + diff --git a/app/routes/v1/application.py b/app/routes/v1/application.py index 32a82fb..7e7d0ed 100644 --- a/app/routes/v1/application.py +++ b/app/routes/v1/application.py @@ -73,17 +73,6 @@ def get_application_genres(): @cross_origin(supports_credentials=True) def create_application(): """Create a new Application""" - - json_data = request.get_json(force=True) - - if not json_data: - return jsonify({'status': 'error', 'message': 'No input was provided.'}), 400 - - # Validate and deserialize input - data, errors = application_schema.load(json_data) - if errors: - return jsonify({'status': 'error', 'message': 'Incorrect format of data provided.', 'data': errors}), 422 - name = request.json['name'] identifier = str(uuid.uuid4().hex) developer = request.json['developer'] diff --git a/app/routes/v1/session.py b/app/routes/v1/session.py index e116a12..00fca15 100644 --- a/app/routes/v1/session.py +++ b/app/routes/v1/session.py @@ -48,9 +48,8 @@ def get_session(id): @cross_origin(supports_credentials=True) def create_session(): """Create a new Session""" - app = Application.query.filter_by(id=request.json['app']).first() - questionnaire = Questionnaire.query.filter_by(id=request.json['questionnaire_id']).first() + questionnaire = Questionnaire.query.filter_by(id=request.json['questionnaire']).first() expected_emotions = request.json['expected_emotions'] print(questionnaire) diff --git a/migrations/versions/d874df9a1f85_.py b/migrations/versions/06614ec763fe_.py similarity index 95% rename from migrations/versions/d874df9a1f85_.py rename to migrations/versions/06614ec763fe_.py index 87af537..7935d66 100644 --- a/migrations/versions/d874df9a1f85_.py +++ b/migrations/versions/06614ec763fe_.py @@ -1,8 +1,8 @@ """empty message -Revision ID: d874df9a1f85 +Revision ID: 06614ec763fe Revises: -Create Date: 2019-04-19 01:39:08.576426 +Create Date: 2019-04-19 02:19:26.253782 """ from alembic import op @@ -10,7 +10,7 @@ # revision identifiers, used by Alembic. -revision = 'd874df9a1f85' +revision = '06614ec763fe' down_revision = None branch_labels = None depends_on = None @@ -56,7 +56,7 @@ def upgrade(): sa.Column('id', sa.Integer(), nullable=False), sa.Column('app_id', sa.Integer(), nullable=False), sa.Column('creation_date', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False), - sa.Column('expected_emotions', sa.PickleType(), nullable=False), + sa.Column('expected_emotions', sa.JSON(), nullable=False), sa.Column('questionnaire_id', sa.Integer(), nullable=False), sa.Column('cssi_score', sa.Float(), nullable=False), sa.Column('latency_scores', sa.JSON(), nullable=False),