Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion api/controllers/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from api.models.file import File
from api.models.admin import Admin
from api.schemas.user import AllUsersSchema, UserAllowedUsage
from api.schemas.badges import AllBadges
from api.schemas.badges import AllBadges, DatedBadgeSchema
from api.schemas.file import FileSchema
from api.schemas.errors import JsonNotFound
from api.schemas.admin import AdminSchema
Expand Down Expand Up @@ -73,3 +73,14 @@ def admin_add_usage():
db.session.commit()

return jsonify(UserAllowedUsage().dump(user).data)


@router.route('/get_badges_dated', methods=['POST'])
def get_badges_dated():
schema = DatedBadgeSchema()
input_data = request.get_json()
data, err = schema.load(input_data)
if err:
return jsonify(err)
dated_badges = Badges.query.filter(Badges.created_at <= data.get('end_date')).filter(Badges.created_at >= data.get('start_date'))
return jsonify(AllBadges(many=True).dump(dated_badges).data)
30 changes: 30 additions & 0 deletions api/migrations/versions/0a6d2e024685_.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
"""empty message

Revision ID: 0a6d2e024685
Revises: 6619326ff408
Create Date: 2018-06-19 19:51:17.650316

"""
from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = '0a6d2e024685'
down_revision = '6619326ff408'
branch_labels = None
depends_on = None


def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.add_column('Badges', sa.Column('created_at', sa.DateTime(), nullable=False))
op.add_column('User', sa.Column('created_at', sa.DateTime(), nullable=False))
# ### end Alembic commands ###


def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_column('User', 'created_at')
op.drop_column('Badges', 'created_at')
# ### end Alembic commands ###
2 changes: 2 additions & 0 deletions api/models/badges.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from api.db import db
from datetime import datetime
import uuid


Expand All @@ -11,6 +12,7 @@ class Badges(db.Model):
text_color = db.Column(db.String(100), nullable=False)
badge_size = db.Column(db.String(100), nullable=False)
download_link = db.Column(db.String)
created_at = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
user_id = db.Column(db.String(100), db.ForeignKey('User.id', ondelete='CASCADE'))

def save_to_db(self):
Expand Down
2 changes: 2 additions & 0 deletions api/models/user.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from werkzeug.security import generate_password_hash
from datetime import datetime
from api.db import db


Expand All @@ -13,6 +14,7 @@ class User(db.Model):
'images?q=tbn:ANd9GcRWnJC8FyOPb9J-EjhQStzIZt_dk-dxuK-VyEnwQDdqIBKj4p7R8A')
allowed_usage = db.Column(db.Integer)
ftl = db.Column(db.Boolean, default=True)
created_at = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
files = db.relationship('File', backref='uploader')
badges = db.relationship('Badges', backref='creator')

Expand Down
13 changes: 13 additions & 0 deletions api/schemas/badges.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ class Meta:
text_color = fields.Str(required=True)
badge_size = fields.Str(required=True)
download_link = fields.Str(required=True)
created_at = fields.Date(required=True)
user_id = fields.Relationship(
self_url='/api/upload/get_file',
self_url_kwargs={'file_id': '<id>'},
Expand All @@ -37,6 +38,7 @@ class Meta:
badge_id = fields.Str(required=True)
text_color = fields.Str(required=True)
badge_size = fields.Str(required=True)
created_at = fields.Date(required=True)
user_id = fields.Relationship(
self_url='/api/upload/get_file',
self_url_kwargs={'file_id': '<id>'},
Expand All @@ -60,6 +62,7 @@ class Meta:
text_color = fields.Str(required=True)
badge_size = fields.Str(required=True)
download_link = fields.Str(required=True)
created_at = fields.Date(required=True)
user_id = fields.Relationship(
self_url='/api/upload/get_file',
self_url_kwargs={'file_id': '<id>'},
Expand Down Expand Up @@ -90,3 +93,13 @@ class Meta:
include_resource_linkage=True,
type_='User'
)


class DatedBadgeSchema(Schema):
class Meta:
type_ = 'dated-badges'
kwargs = {'id': '<id>'}

id = fields.Str(required=True, dump_only=True)
start_date = fields.Date(required=True)
end_date = fields.Date(required=True)