diff --git a/api/urls.py b/api/urls.py index ff61351..ad5bacf 100644 --- a/api/urls.py +++ b/api/urls.py @@ -35,4 +35,7 @@ urlpatterns = [ # forgotten password path('dj-rest-auth/', include('dj_rest_auth.urls')), + # business + path('can-pay-tournament/', views.UserCanPayView.as_view()), + ] diff --git a/api/views.py b/api/views.py index 0793c4b..b238104 100644 --- a/api/views.py +++ b/api/views.py @@ -18,6 +18,8 @@ from django.core.exceptions import ObjectDoesNotExist from .permissions import IsClubOwner from .utils import is_valid_email +import tournaments.models + class CustomAuthToken(APIView): permission_classes = [] @@ -65,6 +67,25 @@ class Logout(APIView): return Response(status=status.HTTP_200_OK) +class UserCanPayView(APIView): + permission_classes = (IsAuthenticated,) + + def post(self, request, *args, **kwargs): + + user = self.request.user + if user.is_anonymous: + return Response({'error': 'Vous n\'êtes pas authentifié'}, status=status.HTTP_401_UNAUTHORIZED) + + club_id = request.data.get('club') + if club_id is None: + return Response({'error': 'Aucun club n\'est renseigné'}, status=status.HTTP_401_UNAUTHORIZED) + + for club in user.authorized_clubs.all(): + if club.id == club_id: + return Response({'payment': TournamentPayment.UNLIMITED}, status=status.HTTP_200_OK) + + return Response(status=status.HTTP_401_UNAUTHORIZED) # request is fine but no payment returned + @api_view(['GET']) def user_by_token(request): serializer = UserSerializer(request.user)