🚸 Refreshed admin-screen and qr-endpoint!

This commit is contained in:
Mawoka
2022-03-03 20:41:45 +01:00
parent 829fbc768d
commit 493a5c0bdf
11 changed files with 221 additions and 29 deletions
+2 -1
View File
@@ -2,7 +2,7 @@ from fastapi import FastAPI
from classquiz.socket_server import sio
from socketio import ASGIApp
from classquiz.routers import users, quiz
from classquiz.routers import users, quiz, utils
from classquiz.db import database
app = FastAPI()
@@ -25,4 +25,5 @@ async def shutdown() -> None:
app.include_router(users.router, tags=["users"], prefix="/api/v1/users")
app.include_router(quiz.router, tags=["quiz"], prefix="/api/v1/quiz")
app.include_router(utils.router, tags=["utils"], prefix="/api/v1/utils")
app.mount("/", ASGIApp(sio))
+24
View File
@@ -0,0 +1,24 @@
import io
import qrcode
import qrcode.image.svg
from fastapi import APIRouter
from classquiz.config import settings
from fastapi.responses import Response
router = APIRouter()
@router.get("/qr/{quiz_pin}")
async def get_qr(quiz_pin: str):
"""
Get QR code for quiz
"""
factory = qrcode.image.svg.SvgImage
qr = qrcode.QRCode(image_factory=qrcode.image.svg.SvgPathImage, version=1
, box_size=20, border=0)
qr.add_data(f"{settings.root_address}/play?pin={quiz_pin}")
buf = io.BytesIO()
qr.make(fit=True)
qr.make_image(fill_color="black", back_color="white").save(buf, "SVG")
return Response(content=buf.getvalue(), media_type="image/svg+xml")