Coverage for documents/schema.py: 94%

16 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-10-10 09:07 +0000

1from drf_spectacular.extensions import OpenApiAuthenticationExtension 

2from drf_spectacular.types import OpenApiTypes 

3from drf_spectacular.utils import OpenApiParameter 

4from drf_spectacular.utils import extend_schema 

5 

6 

7class AngularApiAuthenticationOverrideScheme(OpenApiAuthenticationExtension): 

8 target_class = "paperless.auth.AngularApiAuthenticationOverride" 

9 name = "AngularApiAuthenticationOverride" 

10 

11 def get_security_definition(self, auto_schema): # pragma: no cover 

12 return { 

13 "type": "http", 

14 "scheme": "basic", 

15 } 

16 

17 

18class PaperelessBasicAuthenticationScheme(OpenApiAuthenticationExtension): 

19 target_class = "paperless.auth.PaperlessBasicAuthentication" 

20 name = "PaperelessBasicAuthentication" 

21 

22 def get_security_definition(self, auto_schema): 

23 return { 

24 "type": "http", 

25 "scheme": "basic", 

26 } 

27 

28 

29def generate_object_with_permissions_schema(serializer_class): 

30 return { 

31 operation: extend_schema( 

32 parameters=[ 

33 OpenApiParameter( 

34 name="full_perms", 

35 type=OpenApiTypes.BOOL, 

36 location=OpenApiParameter.QUERY, 

37 ), 

38 ], 

39 responses={ 

40 200: serializer_class(many=operation == "list", all_fields=True), 

41 }, 

42 ) 

43 for operation in ["list", "retrieve"] 

44 }