update api endpoints to use new auth
This commit is contained in:
parent
0fe724e3e1
commit
aa5df7de7f
3 changed files with 19 additions and 7 deletions
|
@ -9,8 +9,8 @@ class APITokenSchema(Schema):
|
|||
token: str
|
||||
|
||||
|
||||
@auth_api_router.get('/session/', response=APITokenSchema,
|
||||
@auth_api_router.get('/session/', response=APITokenSchema, auth=None,
|
||||
summary="Get session API token")
|
||||
def session_token(request):
|
||||
print()
|
||||
return {"token": request.COOKIES.get(settings.SESSION_COOKIE_NAME, 'anonymous')}
|
||||
session_id = request.COOKIES.get(settings.SESSION_COOKIE_NAME, None)
|
||||
return {"token": "anonymous" if session_id is None else f"session:{session_id}"}
|
||||
|
|
|
@ -10,7 +10,9 @@ from rest_framework.response import Response
|
|||
from rest_framework.routers import SimpleRouter
|
||||
|
||||
from c3nav.api.api import SessionViewSet
|
||||
from c3nav.api.exceptions import CustomAPIException
|
||||
from c3nav.api.newapi import auth_api_router
|
||||
from c3nav.api.newauth import BearerAuth
|
||||
from c3nav.editor.api import ChangeSetViewSet, EditorViewSet
|
||||
from c3nav.mapdata.api import (AccessRestrictionGroupViewSet, AccessRestrictionViewSet, AreaViewSet, BuildingViewSet,
|
||||
ColumnViewSet, CrossDescriptionViewSet, DoorViewSet, DynamicLocationPositionViewSet,
|
||||
|
@ -21,13 +23,22 @@ from c3nav.mapdata.api import (AccessRestrictionGroupViewSet, AccessRestrictionV
|
|||
from c3nav.mapdata.utils.user import can_access_editor
|
||||
from c3nav.mesh.api import FirmwareViewSet
|
||||
from c3nav.mesh.newapi import api_router as mesh_api_router
|
||||
from c3nav.mapdata.newapi import api_router as mapdata_api_router
|
||||
from c3nav.routing.api import RoutingViewSet
|
||||
|
||||
ninja_api = NinjaAPI(
|
||||
title="c3nav API",
|
||||
version="v2",
|
||||
docs_url="/",
|
||||
auth=BearerAuth(),
|
||||
)
|
||||
|
||||
|
||||
@ninja_api.exception_handler(CustomAPIException)
|
||||
def on_invalid_token(request, exc):
|
||||
return ninja_api.create_response(request, {"detail": exc.detail}, status=exc.status_code)
|
||||
|
||||
|
||||
ninja_api.add_router("/auth/", auth_api_router)
|
||||
ninja_api.add_router("/mesh/", mesh_api_router)
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@ from ninja import Router as APIRouter
|
|||
from ninja import Schema
|
||||
from ninja.pagination import paginate
|
||||
|
||||
from c3nav.api.newauth import auth_responses
|
||||
from c3nav.mesh.dataformats import BoardType
|
||||
from c3nav.mesh.messages import ChipType
|
||||
from c3nav.mesh.models import FirmwareVersion
|
||||
|
@ -38,15 +39,15 @@ class Error(Schema):
|
|||
detail: str
|
||||
|
||||
|
||||
@api_router.get('/firmwares/', response=list[FirmwareSchema],
|
||||
summary="List available firmwares")
|
||||
@api_router.get('/firmwares/', summary="List available firmwares",
|
||||
response={200: list[FirmwareSchema], **auth_responses})
|
||||
@paginate
|
||||
def firmware_list(request):
|
||||
return FirmwareVersion.objects.all()
|
||||
|
||||
|
||||
@api_router.get('/firmwares/{firmware_id}/', response={200: FirmwareSchema, 404: Error},
|
||||
summary="Get specific firmware")
|
||||
@api_router.get('/firmwares/{firmware_id}/', summary="Get specific firmware",
|
||||
response={200: FirmwareSchema, **auth_responses})
|
||||
def firmware_detail(request, firmware_id: int):
|
||||
try:
|
||||
return FirmwareVersion.objects.get(id=firmware_id)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue