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)
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)
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
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)
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)
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)
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)
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()
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)