Skip to content

Commit 2e30033

Browse files
committed
Documentation update
1 parent 029547b commit 2e30033

File tree

8 files changed

+49
-44
lines changed

8 files changed

+49
-44
lines changed

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,10 @@ It is a combination of two subclass `TokenVerificationController` and `TokenObta
4545
If you wish to customize these routes, you can inherit from these controllers and change its implementation
4646

4747
```python
48-
from ninja_jwt.controller import TokenObtainPairController, router
48+
from ninja_extra import api_controller
49+
from ninja_jwt.controller import TokenObtainPairController
4950

50-
@router('token', tags=['Auth']
51+
@api_controller('token', tags=['Auth'])
5152
class MyCustomController(TokenObtainPairController):
5253
"""obtain_token and refresh_token only"
5354
...

docs/docs/auth_integration.md

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ Authenticated user can be found in `request.user` or `request.auth`
55
### Route Authentication - Class Based
66

77
```python
8-
from ninja_extra import APIController, router, route
8+
from ninja_extra import api_controller, route
99
from ninja_jwt.authentication import JWTAuth
1010

11-
@router('')
12-
class MyController(APIController):
11+
@api_controller
12+
class MyController:
1313
@route.get('/some-endpoint', auth=JWTAuth())
1414
def some_endpoint(self):
1515
...
@@ -19,7 +19,7 @@ class MyController(APIController):
1919

2020
```python
2121
from ninja import router
22-
from ninja_jwt import JWTAuth
22+
from ninja_jwt.authentication import JWTAuth
2323

2424
router = router('')
2525

@@ -39,18 +39,17 @@ from ninja.security import APIKeyHeader
3939
from ninja_jwt.authentication import JWTBaseAuthentication
4040
from ninja import router
4141

42-
class ApiKey(APIKeyHeader):
42+
class ApiKey(APIKeyHeader, JWTBaseAuthentication):
4343
param_name = "X-API-Key"
4444

4545
def authenticate(self, request, key):
46-
if key == "supersecret":
47-
return self.jwt_authenticate(request, token=key)
46+
return self.jwt_authenticate(request, token=key)
4847

4948

5049
header_key = ApiKey()
5150
router = router('')
5251

53-
@api.get("/headerkey", auth=header_key)
52+
@router.get("/headerkey", auth=header_key)
5453
def apikey(request):
5554
return f"Token = {request.auth}"
5655

docs/docs/customizing_token_claims.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ its corresponding serializer. Here\'s an example :
66

77
```python
88
from ninja_jwt.schema import TokenObtainPairSerializer
9-
from ninja_jwt.controller import TokenObtainPairController, router, route
9+
from ninja_jwt.controller import TokenObtainPairController
10+
from ninja_extra import api_controller, route
1011
from ninja_schema import Schema
1112

1213

@@ -27,10 +28,10 @@ class MyTokenObtainPairSchema(TokenObtainPairSerializer):
2728
out_dict.update(user=UserSchema.from_orm(self._user))
2829
return MyTokenObtainPairOutSchema(**out_dict)
2930

30-
@router('/token', tags=['Auth'])
31+
@api_controller('/token', tags=['Auth'])
3132
class MyTokenObtainPairController(TokenObtainPairController):
3233
@route.post(
33-
"/pair", response=schema.MyTokenObtainPairOutSchema, url_name="token_obtain_pair"
34+
"/pair", response=MyTokenObtainPairOutSchema, url_name="token_obtain_pair"
3435
)
3536
def obtain_token(self, user_token: MyTokenObtainPairSchema):
3637
return user_token.output_schema()
@@ -50,7 +51,7 @@ from ninja_schema import Schema
5051
router = router('/token')
5152

5253
@router.post(
53-
"/pair", response=schema.MyTokenObtainPairOutSchema, url_name="token_obtain_pair"
54+
"/pair", response=MyTokenObtainPairOutSchema, url_name="token_obtain_pair"
5455
)
5556
def obtain_token(self, user_token: MyTokenObtainPairSchema):
5657
return user_token.output_schema()

docs/docs/experimental_features.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,12 @@ same token secret key. To use this feature, add the
1010
of the default `JWTAuth` backend) to the Django Ninja Extra route definition
1111

1212
```python
13-
from ninja_extra import APIController, router, route
13+
from ninja_extra import api_controller, route
1414
from ninja_jwt.authentication import JWTTokenUserAuth
1515

16-
@router('')
17-
class MyController(APIController):
16+
17+
@api_controller
18+
class MyController:
1819
@route.get('/some-endpoint', auth=JWTTokenUserAuth())
1920
def some_endpoint(self):
2021
pass

docs/docs/getting_started.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,10 @@ It is a combination of two subclass `TokenVerificationController` and `TokenObta
3434
If you wish to customize these routes, you can inherit from these controllers and change its implementation
3535

3636
```python
37-
from ninja_jwt.controller import TokenObtainPairController, router
37+
from ninja_extra import api_controller
38+
from ninja_jwt.controller import TokenObtainPairController
3839

39-
@router('token', tags=['Auth'])
40+
@api_controller('token', tags=['Auth'])
4041
class MyCustomController(TokenObtainPairController):
4142
"""obtain_token and refresh_token only"
4243
...

ninja_jwt/controller.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,36 @@
1-
from ninja_extra import APIController, route, router
1+
from ninja_extra import api_controller, http_post
22
from ninja_extra.permissions import AllowAny
33
from ninja_schema import Schema
44

55
from ninja_jwt import schema
66

77

8-
class TokenVerificationController(APIController):
8+
class TokenVerificationController:
99
auto_import = False
1010

11-
@route.post("/verify", response={200: Schema}, url_name="token_verify")
11+
@http_post("/verify", response={200: Schema}, url_name="token_verify")
1212
def verify_token(self, token: schema.TokenVerifySerializer):
1313
return {}
1414

1515

16-
class TokenBlackListController(APIController):
16+
class TokenBlackListController:
1717
auto_import = False
1818

19-
@route.post("/blacklist", response={200: Schema}, url_name="token_blacklist")
19+
@http_post("/blacklist", response={200: Schema}, url_name="token_blacklist")
2020
def blacklist_token(self, refresh: schema.TokenBlacklistSerializer):
2121
return {}
2222

2323

24-
class TokenObtainPairController(APIController):
24+
class TokenObtainPairController:
2525
auto_import = False
2626

27-
@route.post(
27+
@http_post(
2828
"/pair", response=schema.TokenObtainPairOutput, url_name="token_obtain_pair"
2929
)
3030
def obtain_token(self, user_token: schema.TokenObtainPairSerializer):
3131
return user_token.output_schema()
3232

33-
@route.post(
33+
@http_post(
3434
"/refresh", response=schema.TokenRefreshSerializer, url_name="token_refresh"
3535
)
3636
def refresh_token(self, refresh_token: schema.TokenRefreshSchema):
@@ -41,15 +41,15 @@ def refresh_token(self, refresh_token: schema.TokenRefreshSchema):
4141
class TokenObtainSlidingController(TokenObtainPairController):
4242
auto_import = False
4343

44-
@route.post(
44+
@http_post(
4545
"/sliding",
4646
response=schema.TokenObtainSlidingOutput,
4747
url_name="token_obtain_sliding",
4848
)
4949
def obtain_token(self, user_token: schema.TokenObtainSlidingSerializer):
5050
return user_token.output_schema()
5151

52-
@route.post(
52+
@http_post(
5353
"/sliding/refresh",
5454
response=schema.TokenRefreshSlidingSerializer,
5555
url_name="token_refresh_sliding",
@@ -59,14 +59,14 @@ def refresh_token(self, refresh_token: schema.TokenRefreshSlidingSchema):
5959
return refresh
6060

6161

62-
@router("/token", permissions=[AllowAny], tags=["token"])
62+
@api_controller("/token", permissions=[AllowAny], tags=["token"])
6363
class NinjaJWTDefaultController(TokenVerificationController, TokenObtainPairController):
6464
"""NinjaJWT Default controller for obtaining and refreshing tokens"""
6565

6666
auto_import = False
6767

6868

69-
@router("/token", permissions=[AllowAny], tags=["token"])
69+
@api_controller("/token", permissions=[AllowAny], tags=["token"])
7070
class NinjaJWTSlidingController(
7171
TokenVerificationController, TokenObtainSlidingController
7272
):

tests/urls.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from django.urls import path
2-
from ninja_extra import NinjaExtraAPI, permissions, router
2+
from ninja_extra import NinjaExtraAPI, api_controller, permissions
33

44
from ninja_jwt.controller import (
55
NinjaJWTDefaultController,
@@ -9,23 +9,25 @@
99

1010
from .views import TestAPIController
1111

12-
sliding_router = router(
12+
TokenObtainSlidingController = api_controller(
1313
"/token",
1414
permissions=[permissions.AllowAny],
1515
tags=["token"],
16-
controller=TokenObtainSlidingController,
17-
)
16+
)(TokenObtainSlidingController)
1817

19-
blacklist_router = router(
18+
TokenBlackListController = api_controller(
2019
"/token",
2120
permissions=[permissions.AllowAny],
2221
tags=["token"],
23-
controller=TokenBlackListController,
24-
)
22+
)(TokenBlackListController)
2523

2624
api = NinjaExtraAPI(urls_namespace="jwt")
27-
api.add_controller_router(sliding_router, blacklist_router)
28-
api.register_controllers(NinjaJWTDefaultController, TestAPIController)
25+
api.register_controllers(
26+
NinjaJWTDefaultController,
27+
TestAPIController,
28+
TokenObtainSlidingController,
29+
TokenBlackListController,
30+
)
2931

3032

3133
urlpatterns = [

tests/views.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
from ninja_extra import APIController, route, router
1+
from ninja_extra import api_controller, http_get
22

33
from ninja_jwt import authentication
44

55

6-
@router("/test-view", auth=authentication.JWTAuth())
7-
class TestAPIController(APIController):
8-
@route.get("/test", url_name="test_view")
6+
@api_controller("/test-view", auth=authentication.JWTAuth())
7+
class TestAPIController:
8+
@http_get("/test", url_name="test_view")
99
def test(self):
1010
return {"foo": "bar"}

0 commit comments

Comments
 (0)