コード例 #1
0
 def perform_update(self, serializer: Serializer):
     serializer.is_valid(raise_exception=True)
     if serializer.validated_data['is_default']:
         # default may change
         previous_instance = self.get_object()  # Currency
         if not previous_instance.is_default:
             # default currency is changing, adjusting exchange rates
             rate_to_old_default = previous_instance.rate
             for currency in Currency.objects.all():
                 currency.rate = currency.rate / rate_to_old_default
                 currency.is_default = currency.code == previous_instance.code
                 currency.save()
     else:
         super().perform_update(serializer)
コード例 #2
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)
コード例 #3
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
コード例 #4
0
ファイル: views.py プロジェクト: tomvsnani/djangochat
    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)
コード例 #5
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)
コード例 #6
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)
コード例 #7
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)
コード例 #8
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()
コード例 #9
0
    def wrapper(self: Any, serializer: Serializer, *args) -> Response:
        if not serializer.is_valid():
            return api_response_handler.failure.render_validation_error(
                serializer.errors)

        return view_func(self, serializer, *args)