32
32
from rest_framework import status # type: ignore
33
33
from rest_framework .decorators import api_view as api_view_sync , renderer_classes # type: ignore
34
34
from adrf .decorators import api_view # type: ignore
35
- from rest_framework .renderers import JSONRenderer , StaticHTMLRenderer , BaseRenderer # type: ignore
35
+ from rest_framework .renderers import StaticHTMLRenderer , BaseRenderer # type: ignore
36
36
from rest_framework .request import Request # type: ignore
37
37
from rest_framework .response import Response # type: ignore
38
38
from supertokens_python import get_all_cors_headers
81
81
last_set_enable_jwt = False
82
82
83
83
84
+ class JsonTextRenderer (BaseRenderer ): # type: ignore
85
+ media_type = "application/json"
86
+
87
+ def render (self , data , media_type = None , renderer_context = None ): # type: ignore
88
+ if isinstance (data , str ):
89
+ return data .encode ("utf-8" ) # type: ignore
90
+ return json .dumps (data ).encode ("utf-8" )
91
+
92
+
84
93
def custom_decorator_for_test (): # type: ignore
85
94
def session_verify_custom_test (f ): # type: ignore
86
95
@wraps (f ) # type: ignore
@@ -221,7 +230,7 @@ async def wrapped_function(request: Request, *args, **kwargs): # type: ignore
221
230
222
231
223
232
@api_view_sync (["GET" , "POST" ])
224
- @renderer_classes ([JSONRenderer ]) # type: ignore
233
+ @renderer_classes ([JsonTextRenderer ]) # type: ignore
225
234
def try_refresh_token (_ ): # type: ignore
226
235
return Response (
227
236
{"error" : "try refresh token" },
@@ -230,7 +239,7 @@ def try_refresh_token(_): # type: ignore
230
239
231
240
232
241
@api_view_sync (["GET" , "POST" ])
233
- @renderer_classes ([JSONRenderer ]) # type: ignore
242
+ @renderer_classes ([JsonTextRenderer ]) # type: ignore
234
243
def unauthorised (_ ): # type: ignore
235
244
return Response (
236
245
{"error" : "unauthorised" },
@@ -416,15 +425,6 @@ def send_options_api_response(): # type: ignore
416
425
return Response ("" ) # type: ignore
417
426
418
427
419
- class JsonTextRenderer (BaseRenderer ): # type: ignore
420
- media_type = "application/json"
421
-
422
- def render (self , data , media_type = None , renderer_context = None ): # type: ignore
423
- if isinstance (data , dict ):
424
- return json .dumps (data ).encode ("utf-8" )
425
- return data .encode ("utf-8" ) # type: ignore
426
-
427
-
428
428
@api_view (["GET" , "POST" ])
429
429
@renderer_classes ([JsonTextRenderer ]) # type: ignore
430
430
async def login (request : Request ): # type: ignore
@@ -480,7 +480,7 @@ async def login_218(request: Request): # type: ignore
480
480
481
481
482
482
@api_view (["GET" , "POST" ])
483
- @renderer_classes ([JSONRenderer ]) # type: ignore
483
+ @renderer_classes ([JsonTextRenderer ]) # type: ignore
484
484
async def before_each (request : Request ): # type: ignore
485
485
config (True , False , None ) # type: ignore
486
486
if request .method == "POST" : # type: ignore
@@ -491,7 +491,7 @@ async def before_each(request: Request): # type: ignore
491
491
492
492
493
493
@api_view (["GET" , "POST" ])
494
- @renderer_classes ([JSONRenderer ]) # type: ignore
494
+ @renderer_classes ([JsonTextRenderer ]) # type: ignore
495
495
async def test_config (request : Request ): # type: ignore
496
496
if request .method == "POST" : # type: ignore
497
497
return Response ("" ) # type: ignore
@@ -500,7 +500,7 @@ async def test_config(request: Request): # type: ignore
500
500
501
501
502
502
@api_view (["GET" , "POST" ])
503
- @renderer_classes ([JSONRenderer ]) # type: ignore
503
+ @renderer_classes ([JsonTextRenderer ]) # type: ignore
504
504
async def multiple_interceptors (request : Request ): # type: ignore
505
505
if request .method == "POST" : # type: ignore
506
506
result_bool = (
@@ -538,7 +538,7 @@ async def update_jwt(request: Request): # type: ignore
538
538
539
539
540
540
@api_view (["GET" , "POST" ])
541
- @renderer_classes ([JSONRenderer ]) # type: ignore
541
+ @renderer_classes ([JsonTextRenderer ]) # type: ignore
542
542
@custom_decorator_for_update_jwt_with_handle ()
543
543
@verify_session ()
544
544
async def update_jwt_with_handle (request : Request ): # type: ignore
@@ -557,21 +557,21 @@ async def validate(self, payload: JSONObject, user_context: Dict[str, Any]):
557
557
558
558
559
559
@api_view (["GET" , "POST" ])
560
- @renderer_classes ([JSONRenderer ]) # type: ignore
560
+ @renderer_classes ([JsonTextRenderer ]) # type: ignore
561
561
@verify_session (override_global_claim_validators = gcv_for_session_claim_err ) # type: ignore
562
562
async def session_claim_error_api (request : Request ): # type: ignore
563
563
return Response ({}) # type: ignore
564
564
565
565
566
566
@api_view (["GET" , "POST" ])
567
- @renderer_classes ([JSONRenderer ]) # type: ignore
567
+ @renderer_classes ([JsonTextRenderer ]) # type: ignore
568
568
async def without_body_403 (request : Request ): # type: ignore
569
569
if request .method == "POST" : # type: ignore
570
570
return Response ("" , status = 403 ) # type: ignore
571
571
572
572
573
573
@api_view (["GET" , "POST" , "PUT" , "DELETE" ])
574
- @renderer_classes ([JSONRenderer ]) # type: ignore
574
+ @renderer_classes ([JsonTextRenderer ]) # type: ignore
575
575
async def testing (request : Request ): # type: ignore
576
576
if request .method in ["GET" , "PUT" , "POST" , "DELETE" ]: # type: ignore
577
577
if "testing" in request .headers : # type: ignore
@@ -593,7 +593,7 @@ async def logout(request: Request): # type: ignore
593
593
594
594
595
595
@api_view (["GET" , "POST" ])
596
- @renderer_classes ([JSONRenderer ]) # type: ignore
596
+ @renderer_classes ([JsonTextRenderer ]) # type: ignore
597
597
@verify_session ()
598
598
async def revoke_all (request : Request ): # type: ignore
599
599
if request .method : # type: ignore
@@ -616,15 +616,15 @@ def refresh_attempted_time(request: Request): # type: ignore
616
616
617
617
618
618
@api_view (["GET" , "PUT" , "POST" ])
619
- @renderer_classes ([JSONRenderer ]) # type: ignore
619
+ @renderer_classes ([JsonTextRenderer ]) # type: ignore
620
620
@custom_decorator_for_test ()
621
621
@verify_session ()
622
622
async def refresh (request : Request ): # type: ignore
623
623
return Response ("refresh success" ) # type: ignore
624
624
625
625
626
626
@api_view (["GET" , "POST" ])
627
- @renderer_classes ([JSONRenderer ]) # type: ignore
627
+ @renderer_classes ([JsonTextRenderer ]) # type: ignore
628
628
def set_anti_csrf (request : Request ): # type: ignore
629
629
global last_set_enable_anti_csrf
630
630
data = request .data # type: ignore
@@ -663,7 +663,7 @@ def set_enable_jwt(request: Request): # type: ignore
663
663
664
664
665
665
@api_view (["GET" , "POST" ])
666
- @renderer_classes ([JSONRenderer ]) # type: ignore
666
+ @renderer_classes ([JsonTextRenderer ]) # type: ignore
667
667
def feature_flags (request : Request ): # type: ignore
668
668
global last_set_enable_jwt
669
669
return Response (
@@ -676,7 +676,7 @@ def feature_flags(request: Request): # type: ignore
676
676
677
677
678
678
@api_view (["GET" , "POST" ])
679
- @renderer_classes ([JSONRenderer ]) # type: ignore
679
+ @renderer_classes ([JsonTextRenderer ]) # type: ignore
680
680
async def reinitialize (request : Request ): # type: ignore
681
681
global last_set_enable_jwt
682
682
global last_set_enable_anti_csrf
@@ -711,7 +711,7 @@ async def get_session_called_time(request: Request): # type: ignore
711
711
712
712
713
713
@api_view (["GET" , "POST" ])
714
- @renderer_classes ([JSONRenderer ]) # type: ignore
714
+ @renderer_classes ([JsonTextRenderer ]) # type: ignore
715
715
async def ping (request : Request ): # type: ignore
716
716
if request .method == "GET" : # type: ignore
717
717
return Response ("success" ) # type: ignore
@@ -720,7 +720,7 @@ async def ping(request: Request): # type: ignore
720
720
721
721
722
722
@api_view (["GET" , "POST" ])
723
- @renderer_classes ([JSONRenderer ]) # type: ignore
723
+ @renderer_classes ([JsonTextRenderer ]) # type: ignore
724
724
async def test_header (request : Request ): # type: ignore
725
725
if request .method == "GET" : # type: ignore
726
726
success_info = request .headers .get ("st-custom-header" ) # type: ignore
@@ -730,7 +730,7 @@ async def test_header(request: Request): # type: ignore
730
730
731
731
732
732
@api_view (["GET" , "POST" ])
733
- @renderer_classes ([JSONRenderer ]) # type: ignore
733
+ @renderer_classes ([JsonTextRenderer ]) # type: ignore
734
734
async def check_device_info (request : Request ): # type: ignore
735
735
if request .method == "GET" : # type: ignore
736
736
sdk_name = request .headers .get ("supertokens-sdk-name" ) # type: ignore
@@ -745,14 +745,14 @@ async def check_device_info(request: Request): # type: ignore
745
745
746
746
747
747
@api_view (["GET" , "POST" ])
748
- @renderer_classes ([JSONRenderer ]) # type: ignore
748
+ @renderer_classes ([JsonTextRenderer ]) # type: ignore
749
749
async def check_rid (request : Request ): # type: ignore
750
750
rid = request .headers .get ("rid" ) # type: ignore
751
751
return Response ("fail" if rid is None else "success" ) # type: ignore
752
752
753
753
754
754
@api_view (["GET" , "POST" ])
755
- @renderer_classes ([JSONRenderer ]) # type: ignore
755
+ @renderer_classes ([JsonTextRenderer ]) # type: ignore
756
756
async def check_allow_credentials (request : Request ): # type: ignore
757
757
if request .method == "GET" : # type: ignore
758
758
return Response ("allow-credentials" in request .headers ) # type: ignore
@@ -761,7 +761,7 @@ async def check_allow_credentials(request: Request): # type: ignore
761
761
762
762
763
763
@api_view (["GET" , "POST" , "OPTIONS" ])
764
- @renderer_classes ([JSONRenderer ]) # type: ignore
764
+ @renderer_classes ([JsonTextRenderer ]) # type: ignore
765
765
async def test_error (request : Request ): # type: ignore
766
766
if request .method == "OPTIONS" : # type: ignore
767
767
return send_options_api_response () # type: ignore
0 commit comments