Ejemplo n.º 1
0
    def post(self, request):
        Serializer = UserSerializer(data=request.data)
        if Serializer.is_valid(raise_exception=True):
            Serializer.save()

            # generate a token and login
            email = request.data['email']
            password = request.data['password']
            user = User.objects.filter(email=email).first()
            payload = {
                'id': user.id,
                'exp': datetime.datetime.utcnow() + datetime.timedelta(minutes=60),
                'iat': datetime.datetime.utcnow()
            }
            token = jwt.encode(payload, 'secret',algorithm='HS256').decode('utf-8')

            response = Response({}, status=status.HTTP_200_OK)

            response.set_cookie(key='jwt', value=token, httponly=True)
            response.data = {
                'jwt': token,
                'id': user.id
            }
            return response
        return Response(Serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Ejemplo n.º 2
0
    def register(s, f):
        Serializer = serializers.LoginSerializer(data=f.POST)
        if Serializer.is_valid(raise_exception=True):
            Serializer.save()
            return response.Response(Serializer.data)

        else:
            return response.Response(Serializer.errors)
Ejemplo n.º 3
0
 def post(self, request, user_id, advisor_id):
     recieved_data = request.data
     recieved_data["advId"] = advisor_id
     recieved_data["userId"] = user_id
     Serializer = BookingSerializer(data=recieved_data)
     if Serializer.is_valid():
         Serializer.save()
         return Response(None, status=status.HTTP_200_OK)
     return Response(Serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Ejemplo n.º 4
0
 def post(self, request):
     Serializer = AdvisorSerializer(data=request.data)
     if Serializer.is_valid():
         Serializer.save()
         test_res = {}
         test_res["name"] = Serializer.data["name"]
         test_res["picture_url"] = Serializer.data["picture_url"]
         return Response(test_res, status=status.HTTP_200_OK)
     return Response(Serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Ejemplo n.º 5
0
 def perform_create(self, serializer: Serializer) -> None:
     try:
         message, signature = extract_authorization_components(self.request)
         address = extract_address_from_authorization(message, signature)
     except Exception:
         logger.exception('Failure processing credentials')
         raise APIException('Invalid credentials')
     if serializer.validated_data['address'] != address:
         raise ValidationError('Addresses do not match')
     serializer.save()
Ejemplo n.º 6
0
 def perform_create(self, serializer: Serializer):
     if not serializer.validated_data['timeslot']:
         start_time: datetime = serializer.validated_data['start_time']
         duration = serializer.validated_data['duration']
         subject = serializer.validated_data['subject']
         timeslot = util.find_matching_timeslot(start_time, duration,
                                                subject, self.request.user,
                                                TimeSlot.objects.all())
         if timeslot:
             serializer.initial_data['timeslot'] = timeslot.id
             serializer.run_validation(serializer.initial_data)
             serializer.validated_data['timeslot'] = timeslot
         else:
             raise ValidationError(
                 {'timeslot': _("Couldn't find matching timeslot!")})
     serializer.save()
Ejemplo n.º 7
0
 def post(self, request, format='json'):
     Serializer = UserSerializer(data=request.data) #serializer object
     if Serializer.is_valid():
         user = Serializer.save()
         if user:
             return Response(Serializer.data, status=status.HTTP_201_CREATED)
     
     return Response(Serializer.errors, status=status.HTTP_400_BAD_REQUEST) #handles the bad request
Ejemplo n.º 8
0
    def perform_create(self, serializer: Serializer):
        if serializer.is_valid():
            password = serializer.validated_data.get('password')
            new_user = serializer.save()
            new_user.set_password(password)
            new_user.save()
            return Response(serializer.data, status.HTTP_201_CREATED)

        super().perform_create(serializer)
Ejemplo n.º 9
0
 def perform_update(self, serializer: Serializer) -> None:
     instance = serializer.save()
     if not self.AUDITOR_EVENT_TYPES:
         return instance
     event_type = self.AUDITOR_EVENT_TYPES.get('UPDATE')
     if event_type and is_user(self.request.user):
         auditor.record(event_type=event_type,
                        instance=instance,
                        actor_id=self.request.user.id,
                        actor_name=self.request.user.username)
Ejemplo n.º 10
0
    def perform_update(self, serializer: Serializer):
        if serializer.is_valid(raise_exception=True):
            previous_instance = self.get_object()  # type: Domain
            registration_period = serializer.validated_data[
                'registration_period']

            if registration_period and registration_period != previous_instance.registration_period:
                # registration period changed, update price cycle
                service = previous_instance.service
                new_cycle = service.product.cycles.filter(
                    cycle_multiplier=registration_period).first()

                if new_cycle:
                    service.cycle = new_cycle
                    service.save()
                else:
                    raise ValidationError({
                        'registration_period':
                        _('No price defined for this registration period. Check TLD pricing'
                          )
                    })

            new_name = serializer.validated_data['name']
            if new_name and new_name != previous_instance.name:
                if not DomainUtils.validate_domain_name(domain_name=new_name):
                    raise ValidationError({'name': _('Invalid domain name')})

                try:
                    new_tld_name = DomainUtils.get_tld_name(new_name)
                except ValueError:
                    new_tld_name = None

                if previous_instance.tld.name != new_tld_name:
                    raise ValidationError({
                        'name':
                        _('New domain name should have the same TLD({})').
                        format(previous_instance.tld.name)
                    })

            serializer.save()
Ejemplo n.º 11
0
 def perform_update(self, serializer: serializers.Serializer) -> None:
     serializer.save(
         modified_by=self.request.user.username,
         modified_on=datetime.now(),
     )
Ejemplo n.º 12
0
 def perform_create(self, serializer: Serializer):
     email_address = serializer.save()
     signals.email_added.send(sender=self.request.user.__class__,
                              request=self.request,
                              user=self.request.user,
                              email_address=email_address)
Ejemplo n.º 13
0
 def perform_create(self, serializer: serializers.Serializer):
     serializer.save(owner=self.request.user)
Ejemplo n.º 14
0
    def save_hashtag_and_response(self, serializer: Serializer) -> Response:
        serializer.save()

        return self.json_success_response(
            message={MESSAGE_JSON_KEY: "Hashtag created successfully"},
            hashtag=serializer.data)