mirror of
https://github.com/Dvorinka/swingmusic-extended.git
synced 2026-06-03 20:13:02 +00:00
86fabcd5e3
+ merge main.py and manage.py + move start logic to swingmusic/__main__.py + add a run.py on the project root
38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
from flask_openapi3 import Tag
|
|
from flask_openapi3 import APIBlueprint
|
|
from pydantic import BaseModel, Field
|
|
|
|
from swingmusic.api.apischemas import GenericLimitSchema
|
|
from swingmusic.lib.home.recentlyadded import get_recently_added_items
|
|
from swingmusic.lib.home.get_recently_played import get_recently_played
|
|
from swingmusic.store.homepage import HomepageStore
|
|
|
|
bp_tag = Tag(name="Home", description="Homepage items")
|
|
api = APIBlueprint("home", __name__, url_prefix="/nothome", abp_tags=[bp_tag])
|
|
|
|
|
|
@api.get("/recents/added")
|
|
def get_recently_added(query: GenericLimitSchema):
|
|
"""
|
|
Get recently added
|
|
"""
|
|
return {"items": get_recently_added_items(query.limit)}
|
|
|
|
|
|
@api.get("/recents/played")
|
|
def get_recent_plays(query: GenericLimitSchema):
|
|
"""
|
|
Get recently played
|
|
"""
|
|
return {"items": get_recently_played(query.limit)}
|
|
|
|
|
|
class HomepageItem(BaseModel):
|
|
limit: int = Field(
|
|
default=9, description="The max number of items per group to return"
|
|
)
|
|
|
|
|
|
@api.get("/")
|
|
def homepage_items(query: HomepageItem):
|
|
return HomepageStore.get_homepage_items(limit=query.limit) |