Coverage for apps/practitioners/views.py: 68%

40 statements  

« prev     ^ index     » next       coverage.py v6.4.4, created at 2024-05-31 13:23 -0600

1from rest_framework.decorators import action 

2from rest_framework.mixins import CreateModelMixin as Create 

3from rest_framework.mixins import ListModelMixin as List 

4from rest_framework.mixins import RetrieveModelMixin as Detail 

5from rest_framework.mixins import UpdateModelMixin as Update 

6from rest_framework.serializers import ValidationError 

7from rest_framework.viewsets import GenericViewSet, ModelViewSet 

8 

9from apps.users.mixins import AdminMixin, UserMixin 

10 

11from .serializers import CertificationSerializer, GoogleCalendarSerializer, PractitionerSerializer 

12from app.stripe.serializers import StripeSubscriptionSerializer 

13 

14 

15class AdminPractitionerViewSet(AdminMixin, ModelViewSet): 

16 """ 

17 Model ViewSet for Practitioners 

18 """ 

19 

20 serializer_class = PractitionerSerializer 

21 

22 

23class AdminCertificationViewSet(AdminMixin, ModelViewSet): 

24 """ 

25 Model ViewSet for Certifications 

26 """ 

27 

28 serializer_class = CertificationSerializer 

29 

30 

31class UserPractitionerViewSet(UserMixin, GenericViewSet, Create, Detail, Update): 

32 """ 

33 Model ViewSet for Practitioners 

34 """ 

35 

36 serializer_class = PractitionerSerializer 

37 

38 def create(self, request, *args, **kwargs): 

39 request.data["user"] = request.user.pk 

40 return super().create(request, args, kwargs) 

41 

42 

43class UserSubscriptionViewSet(UserMixin, GenericViewSet, Create, List, Detail, Update): 

44 """ 

45 Model ViewSet for Suscriptions 

46 """ 

47 

48 serializer_class = StripeSubscriptionSerializer 

49 

50 def get_queryset(self, *args, **kwargs): 

51 if getattr(self.user, 'practitioner', None): 

52 return super().get_queryset().filter(subscriber=self.user.practitioner.pk) 

53 return super().get_queryset().none() 

54 

55 def create(self, request, *args, **kwargs): 

56 practitioner = getattr(request.user, 'practitioner', None) 

57 if not practitioner: 

58 raise ValidationError({"Este usuario no es Doctor"}) 

59 request.data["practitioner"] = request.user.practitioner 

60 sup = super().create(request, args, kwargs) 

61 print(sup) 

62 return sup 

63 

64 

65 

66 

67class UserCertificationViewSet(UserMixin, GenericViewSet, Create, List, Detail): 

68 """ 

69 Model ViewSet for Certifications 

70 """ 

71 

72 serializer_class = CertificationSerializer 

73 

74 def create(self, request, *args, **kwargs): 

75 request.data["practitioner"] = request.user.practitioner.pk 

76 return super().create(request, args, kwargs) 

77 

78 

79class UserGoogleCalendarViewSet(UserMixin, GenericViewSet, Update, Detail): 

80 """ 

81 Model ViewSet for GoogleCalendars 

82 """ 

83 

84 serializer_class = GoogleCalendarSerializer