Afegir cartells a les jams (i esquelet per a slow jams i notes)
This commit is contained in:
@@ -1,10 +1,12 @@
|
||||
from folkugat_web.api.router import get_router
|
||||
|
||||
from . import index, live, set_page
|
||||
from . import cartell, index, live, playlist, set_page
|
||||
|
||||
router = get_router()
|
||||
router.include_router(cartell.router)
|
||||
router.include_router(index.router)
|
||||
router.include_router(live.router)
|
||||
router.include_router(set_page.router)
|
||||
router.include_router(playlist.router)
|
||||
|
||||
__all__ = ["router"]
|
||||
|
||||
71
folkugat_web/api/routes/sessio/cartell.py
Normal file
71
folkugat_web/api/routes/sessio/cartell.py
Normal file
@@ -0,0 +1,71 @@
|
||||
import dataclasses
|
||||
from typing import Annotated
|
||||
|
||||
from fastapi import HTTPException, Request, UploadFile
|
||||
from fastapi.params import File
|
||||
from folkugat_web.api.router import get_router
|
||||
from folkugat_web.fragments.sessio import cartell
|
||||
from folkugat_web.services import auth
|
||||
from folkugat_web.services import files as files_service
|
||||
from folkugat_web.services import sessions as sessions_service
|
||||
|
||||
router = get_router()
|
||||
|
||||
|
||||
@router.get("/api/sessio/{session_id}/cartell")
|
||||
def get_cartell(
|
||||
request: Request,
|
||||
logged_in: auth.LoggedIn,
|
||||
session_id: int,
|
||||
):
|
||||
return cartell.cartell(request, session_id, logged_in)
|
||||
|
||||
|
||||
@router.get("/api/sessio/{session_id}/cartell/editor")
|
||||
def get_cartell_editor(
|
||||
request: Request,
|
||||
_: auth.RequireLogin,
|
||||
session_id: int,
|
||||
):
|
||||
return cartell.cartell_editor(request, session_id)
|
||||
|
||||
|
||||
@router.put("/api/sessio/{session_id}/cartell")
|
||||
async def set_cartell(
|
||||
request: Request,
|
||||
logged_in: auth.RequireLogin,
|
||||
session_id: int,
|
||||
upload_file: Annotated[UploadFile, File()],
|
||||
):
|
||||
session = sessions_service.get_session(session_id=session_id)
|
||||
if not session:
|
||||
raise HTTPException(status_code=404, detail="Could not find session")
|
||||
url = await files_service.store_session_cartell(
|
||||
session_id=session_id,
|
||||
upload_file=upload_file,
|
||||
)
|
||||
new_session = dataclasses.replace(
|
||||
session,
|
||||
cartell_url=url,
|
||||
)
|
||||
sessions_service.set_session(new_session)
|
||||
return cartell.cartell(request, session_id, logged_in)
|
||||
|
||||
|
||||
@router.delete("/api/sessio/{session_id}/cartell")
|
||||
async def delete_cartell(
|
||||
request: Request,
|
||||
logged_in: auth.RequireLogin,
|
||||
session_id: int,
|
||||
):
|
||||
session = sessions_service.get_session(session_id=session_id)
|
||||
if not session:
|
||||
raise HTTPException(status_code=404, detail="Could not find session")
|
||||
if session.cartell_url:
|
||||
new_session = dataclasses.replace(
|
||||
session,
|
||||
cartell_url=None,
|
||||
)
|
||||
sessions_service.set_session(new_session)
|
||||
files_service.clean_orphan_files()
|
||||
return cartell.cartell(request, session_id, logged_in)
|
||||
@@ -2,7 +2,8 @@ from typing import Annotated
|
||||
|
||||
from fastapi import Form, Request
|
||||
from folkugat_web.api.router import get_router
|
||||
from folkugat_web.fragments import live, sessio
|
||||
from folkugat_web.fragments import live
|
||||
from folkugat_web.fragments.sessio import page as sessio
|
||||
from folkugat_web.services import auth
|
||||
from folkugat_web.services.temes import write as temes_service
|
||||
from folkugat_web.templates import templates
|
||||
@@ -52,150 +53,3 @@ def stop_live(
|
||||
session_id: int,
|
||||
):
|
||||
return live.stop_live_session(request=request, session_id=session_id)
|
||||
|
||||
|
||||
@router.post("/api/sessio/{session_id}/set")
|
||||
def add_set(
|
||||
request: Request,
|
||||
logged_in: auth.RequireLogin,
|
||||
session_id: int,
|
||||
):
|
||||
return sessio.add_set(request=request, session_id=session_id, logged_in=logged_in)
|
||||
|
||||
|
||||
@router.get("/api/sessio/{session_id}/set/{set_id}")
|
||||
def get_set(
|
||||
request: Request,
|
||||
logged_in: auth.LoggedIn,
|
||||
session_id: int,
|
||||
set_id: int,
|
||||
):
|
||||
return sessio.get_set(request=request, session_id=session_id, set_id=set_id, logged_in=logged_in)
|
||||
|
||||
|
||||
@router.delete("/api/sessio/{session_id}/set/{set_id}")
|
||||
def delete_set(
|
||||
_: auth.RequireLogin,
|
||||
session_id: int,
|
||||
set_id: int,
|
||||
):
|
||||
return sessio.delete_set(session_id=session_id, set_id=set_id)
|
||||
|
||||
|
||||
@router.post("/api/sessio/{session_id}/set/{set_id}")
|
||||
def add_tema(
|
||||
request: Request,
|
||||
logged_in: auth.RequireLogin,
|
||||
session_id: int,
|
||||
set_id: int,
|
||||
):
|
||||
return sessio.add_tema(request=request, session_id=session_id, set_id=set_id, logged_in=logged_in)
|
||||
|
||||
|
||||
@router.get("/api/sessio/{session_id}/set/{set_id}/tema/{entry_id}")
|
||||
def get_tema(
|
||||
request: Request,
|
||||
logged_in: auth.RequireLogin,
|
||||
session_id: int,
|
||||
set_id: int,
|
||||
entry_id: int,
|
||||
):
|
||||
return sessio.get_tema(
|
||||
request=request, session_id=session_id, set_id=set_id, entry_id=entry_id, logged_in=logged_in)
|
||||
|
||||
|
||||
@router.get("/api/sessio/{session_id}/set/{set_id}/tema/{entry_id}/editor")
|
||||
def get_tema_editor(
|
||||
request: Request,
|
||||
logged_in: auth.RequireLogin,
|
||||
session_id: int,
|
||||
set_id: int,
|
||||
entry_id: int,
|
||||
):
|
||||
return sessio.get_tema_editor(
|
||||
request=request, session_id=session_id, set_id=set_id, entry_id=entry_id, logged_in=logged_in)
|
||||
|
||||
|
||||
@router.delete("/api/sessio/{session_id}/set/{set_id}/tema/{entry_id}")
|
||||
def delete_tema(
|
||||
_: auth.RequireLogin,
|
||||
session_id: int,
|
||||
set_id: int,
|
||||
entry_id: int,
|
||||
):
|
||||
return sessio.delete_tema(session_id=session_id, set_id=set_id, entry_id=entry_id)
|
||||
|
||||
|
||||
@router.get("/api/sessio/{session_id}/set/{set_id}/tema/{entry_id}/busca")
|
||||
def busca_tema(
|
||||
request: Request,
|
||||
_: auth.RequireLogin,
|
||||
session_id: int,
|
||||
set_id: int,
|
||||
entry_id: int,
|
||||
query: str,
|
||||
):
|
||||
return sessio.busca_tema(
|
||||
request=request,
|
||||
session_id=session_id,
|
||||
set_id=set_id,
|
||||
entry_id=entry_id,
|
||||
query=query,
|
||||
)
|
||||
|
||||
|
||||
@router.put("/api/sessio/{session_id}/set/{set_id}/tema/{entry_id}")
|
||||
def set_tema(
|
||||
request: Request,
|
||||
logged_in: auth.RequireLogin,
|
||||
session_id: int,
|
||||
set_id: int,
|
||||
entry_id: int,
|
||||
tema_id: Annotated[int, Form()],
|
||||
):
|
||||
return sessio.set_tema(
|
||||
request=request,
|
||||
logged_in=logged_in,
|
||||
session_id=session_id,
|
||||
set_id=set_id,
|
||||
entry_id=entry_id,
|
||||
tema_id=tema_id,
|
||||
)
|
||||
|
||||
|
||||
@router.put("/api/sessio/{session_id}/set/{set_id}/tema/{entry_id}/unknown")
|
||||
def set_tema_unknown(
|
||||
request: Request,
|
||||
logged_in: auth.RequireLogin,
|
||||
session_id: int,
|
||||
set_id: int,
|
||||
entry_id: int,
|
||||
):
|
||||
return sessio.set_tema(
|
||||
request=request,
|
||||
logged_in=logged_in,
|
||||
session_id=session_id,
|
||||
set_id=set_id,
|
||||
entry_id=entry_id,
|
||||
tema_id=None,
|
||||
)
|
||||
|
||||
|
||||
@router.post("/api/sessio/{session_id}/set/{set_id}/tema/{entry_id}")
|
||||
def set_tema_new(
|
||||
request: Request,
|
||||
logged_in: auth.RequireLogin,
|
||||
session_id: int,
|
||||
set_id: int,
|
||||
entry_id: int,
|
||||
title: Annotated[str, Form()],
|
||||
):
|
||||
new_tema = temes_service.create_tema(title=title)
|
||||
return sessio.set_tema(
|
||||
request=request,
|
||||
logged_in=logged_in,
|
||||
session_id=session_id,
|
||||
set_id=set_id,
|
||||
entry_id=entry_id,
|
||||
tema_id=new_tema.id,
|
||||
)
|
||||
|
||||
189
folkugat_web/api/routes/sessio/playlist.py
Normal file
189
folkugat_web/api/routes/sessio/playlist.py
Normal file
@@ -0,0 +1,189 @@
|
||||
from typing import Annotated
|
||||
|
||||
from fastapi import Form, Request
|
||||
from folkugat_web.api.router import get_router
|
||||
from folkugat_web.fragments import live
|
||||
from folkugat_web.fragments.sessio import playlist
|
||||
from folkugat_web.services import auth
|
||||
from folkugat_web.services.temes import write as temes_service
|
||||
from folkugat_web.templates import templates
|
||||
|
||||
router = get_router()
|
||||
|
||||
|
||||
@router.post("/api/sessio/{session_id}/playlist/set")
|
||||
def add_set(
|
||||
request: Request,
|
||||
logged_in: auth.RequireLogin,
|
||||
session_id: int,
|
||||
):
|
||||
return playlist.add_set(
|
||||
request=request,
|
||||
session_id=session_id,
|
||||
logged_in=logged_in,
|
||||
)
|
||||
|
||||
|
||||
@router.get("/api/sessio/{session_id}/playlist/set/{set_id}")
|
||||
def get_set(
|
||||
request: Request,
|
||||
logged_in: auth.LoggedIn,
|
||||
session_id: int,
|
||||
set_id: int,
|
||||
):
|
||||
return playlist.get_set(
|
||||
request=request,
|
||||
session_id=session_id,
|
||||
set_id=set_id,
|
||||
logged_in=logged_in,
|
||||
)
|
||||
|
||||
|
||||
@router.delete("/api/sessio/{session_id}/playlist/set/{set_id}")
|
||||
def delete_set(
|
||||
_: auth.RequireLogin,
|
||||
session_id: int,
|
||||
set_id: int,
|
||||
):
|
||||
return playlist.delete_set(
|
||||
session_id=session_id,
|
||||
set_id=set_id,
|
||||
)
|
||||
|
||||
|
||||
@router.post("/api/sessio/{session_id}/playlist/set/{set_id}")
|
||||
def add_tema(
|
||||
request: Request,
|
||||
logged_in: auth.RequireLogin,
|
||||
session_id: int,
|
||||
set_id: int,
|
||||
):
|
||||
return playlist.add_tema(
|
||||
request=request,
|
||||
session_id=session_id,
|
||||
set_id=set_id,
|
||||
logged_in=logged_in,
|
||||
)
|
||||
|
||||
|
||||
@router.get("/api/sessio/{session_id}/playlist/set/{set_id}/tema/{entry_id}")
|
||||
def get_tema(
|
||||
request: Request,
|
||||
logged_in: auth.RequireLogin,
|
||||
session_id: int,
|
||||
set_id: int,
|
||||
entry_id: int,
|
||||
):
|
||||
return playlist.get_tema(
|
||||
request=request,
|
||||
session_id=session_id,
|
||||
set_id=set_id,
|
||||
entry_id=entry_id,
|
||||
logged_in=logged_in,
|
||||
)
|
||||
|
||||
|
||||
@router.get("/api/sessio/{session_id}/playlist/set/{set_id}/tema/{entry_id}/editor")
|
||||
def get_tema_editor(
|
||||
request: Request,
|
||||
logged_in: auth.RequireLogin,
|
||||
session_id: int,
|
||||
set_id: int,
|
||||
entry_id: int,
|
||||
):
|
||||
return playlist.get_tema_editor(
|
||||
request=request,
|
||||
session_id=session_id,
|
||||
set_id=set_id,
|
||||
entry_id=entry_id,
|
||||
logged_in=logged_in,
|
||||
)
|
||||
|
||||
|
||||
@router.delete("/api/sessio/{session_id}/playlist/set/{set_id}/tema/{entry_id}")
|
||||
def delete_tema(
|
||||
_: auth.RequireLogin,
|
||||
session_id: int,
|
||||
set_id: int,
|
||||
entry_id: int,
|
||||
):
|
||||
return playlist.delete_tema(
|
||||
session_id=session_id,
|
||||
set_id=set_id,
|
||||
entry_id=entry_id,
|
||||
)
|
||||
|
||||
|
||||
@router.get("/api/sessio/{session_id}/playlist/set/{set_id}/tema/{entry_id}/busca")
|
||||
def busca_tema(
|
||||
request: Request,
|
||||
_: auth.RequireLogin,
|
||||
session_id: int,
|
||||
set_id: int,
|
||||
entry_id: int,
|
||||
query: str,
|
||||
):
|
||||
return playlist.busca_tema(
|
||||
request=request,
|
||||
session_id=session_id,
|
||||
set_id=set_id,
|
||||
entry_id=entry_id,
|
||||
query=query,
|
||||
)
|
||||
|
||||
|
||||
@router.put("/api/sessio/{session_id}/playlist/set/{set_id}/tema/{entry_id}")
|
||||
def set_tema(
|
||||
request: Request,
|
||||
logged_in: auth.RequireLogin,
|
||||
session_id: int,
|
||||
set_id: int,
|
||||
entry_id: int,
|
||||
tema_id: Annotated[int, Form()],
|
||||
):
|
||||
return playlist.set_tema(
|
||||
request=request,
|
||||
logged_in=logged_in,
|
||||
session_id=session_id,
|
||||
set_id=set_id,
|
||||
entry_id=entry_id,
|
||||
tema_id=tema_id,
|
||||
)
|
||||
|
||||
|
||||
@router.put("/api/sessio/{session_id}/playlist/set/{set_id}/tema/{entry_id}/unknown")
|
||||
def set_tema_unknown(
|
||||
request: Request,
|
||||
logged_in: auth.RequireLogin,
|
||||
session_id: int,
|
||||
set_id: int,
|
||||
entry_id: int,
|
||||
):
|
||||
return playlist.set_tema(
|
||||
request=request,
|
||||
logged_in=logged_in,
|
||||
session_id=session_id,
|
||||
set_id=set_id,
|
||||
entry_id=entry_id,
|
||||
tema_id=None,
|
||||
)
|
||||
|
||||
|
||||
@router.post("/api/sessio/{session_id}/playlist/set/{set_id}/tema/{entry_id}")
|
||||
def set_tema_new(
|
||||
request: Request,
|
||||
logged_in: auth.RequireLogin,
|
||||
session_id: int,
|
||||
set_id: int,
|
||||
entry_id: int,
|
||||
title: Annotated[str, Form()],
|
||||
):
|
||||
new_tema = temes_service.create_tema(title=title)
|
||||
return playlist.set_tema(
|
||||
request=request,
|
||||
logged_in=logged_in,
|
||||
session_id=session_id,
|
||||
set_id=set_id,
|
||||
entry_id=entry_id,
|
||||
tema_id=new_tema.id,
|
||||
)
|
||||
@@ -34,7 +34,7 @@ async def set_link(
|
||||
upload_file: Annotated[UploadFile | None, File()] = None,
|
||||
):
|
||||
if upload_file:
|
||||
url = await files_service.store_file(tema_id=tema_id, upload_file=upload_file)
|
||||
url = await files_service.store_tema_file(tema_id=tema_id, upload_file=upload_file)
|
||||
|
||||
link_type = links_service.guess_link_type(url or '')
|
||||
new_link = model.Link(
|
||||
@@ -65,7 +65,7 @@ def create_link(
|
||||
|
||||
@router.delete("/api/tema/{tema_id}/link/{link_id}")
|
||||
def delete_link(
|
||||
_logged_in: auth.RequireLogin,
|
||||
_: auth.RequireLogin,
|
||||
tema_id: int,
|
||||
link_id: int,
|
||||
):
|
||||
|
||||
Reference in New Issue
Block a user