From dd3260b3aaabf8447a3b2362c086dd0f8fd9a07b Mon Sep 17 00:00:00 2001
From: salazard <hamzatouizrat@yahoo.com>
Date: Fri, 28 Oct 2022 21:52:54 +0200
Subject: [PATCH] add charte signe

---
 users/serializers.py | 12 +++++++++++-
 users/views.py       | 38 +++++++++++++++++++++++++++++++++++++-
 2 files changed, 48 insertions(+), 2 deletions(-)

diff --git a/users/serializers.py b/users/serializers.py
index fa0d945..88475ba 100644
--- a/users/serializers.py
+++ b/users/serializers.py
@@ -12,8 +12,18 @@ class UserSerializer(serializers.HyperlinkedModelSerializer):
     class Meta:  # noqa
         model = User
         fields = ('id', 'email', 'profile_type',
-                  'first_name', 'last_name', 'phone_number', 'url',)
+                  'first_name', 'last_name', 'phone_number', 'url')
         extra_kwargs = {
             'email': {'read_only': True},
             'url': {'view_name': 'api:user-detail'},
         }
+class CharterSerializer(serializers.ModelSerializer):
+    """Hyperlinked serializer for user objects."""
+
+    class Meta:  # noqa
+        model = User
+        fields = ('id', 'email', 'profile_type',
+                  'first_name', 'last_name', 'phone_number', 'url')
+        extra_kwargs = {
+            'email': {'read_only': True},
+        }
diff --git a/users/views.py b/users/views.py
index 4091ee9..a2c18d6 100644
--- a/users/views.py
+++ b/users/views.py
@@ -1,9 +1,15 @@
 """Users API views."""
 
+import email
 from django.contrib.auth import get_user_model
 from dry_rest_permissions.generics import DRYPermissions
 from rest_framework import viewsets
-from .serializers import UserSerializer
+from .serializers import UserSerializer, CharterSerializer
+from rest_framework.views import APIView
+from rest_framework.response import Response
+from rest_framework.decorators import action
+from rest_framework import status
+
 
 User = get_user_model()
 
@@ -21,3 +27,33 @@ class UserViewSet(viewsets.ReadOnlyModelViewSet):
     queryset = User.objects.all()
     serializer_class = UserSerializer
     permission_classes = (DRYPermissions,)
+
+class UserCheckChartViewSet(APIView):
+    """API endpoint that allows to see of user have signed charter.
+
+        retrieve:
+        Return a email .
+
+        list:
+        Return a boolean value.
+    """
+    def get(self, *args, **kwargs):
+        user = User.objects.filter(email=self.request.query_params.get('email'))
+        if user[0].HasSignedCharter :
+            resp = status.HTTP_200_OK
+        else : 
+            resp= status.HTTP_404_NOT_FOUND
+        return Response( status=resp)
+
+
+    def post(self, *args, **kwargs):
+        user = User.objects.filter(email=self.request.query_params.get('email'))
+        if len(user)  != 0 :
+            resp = status.HTTP_200_OK
+        else : 
+            resp= status.HTTP_404_NOT_FOUND
+        user[0].HasSignedCharter = True
+        user[0].save()
+        return Response( status=resp)
+
+   
\ No newline at end of file
-- 
GitLab