def create(self, request, *args, **kwargs): if request.user.is_staff: serializer = CoworkingSpaceSubscriptionAdminCreateSerializer( data=request.data) serializer.is_valid(raise_exception=True) self.perform_create(serializer) headers = self.get_success_headers(serializer.data) return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers) serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) # Payment package = serializer.validated_data['package'] payment = Payment.pay(serializer.validated_data['card_token'], package.price) if payment is None: return Response({"error": "Cannot make payment."}, status=status.HTTP_402_PAYMENT_REQUIRED) # Date date_start = timezone.localdate() query = CoworkingSpaceSubscription.objects.filter( user=request.user, is_canceled=False, date_end__gte=date_start) if query.exists(): date_start = query.latest('date_end').date_end + timedelta(days=1) serializer.save(date_start=date_start, date_end=date_start + timedelta(days=package.duration - 1), payment=payment, user=request.user) headers = self.get_success_headers(serializer.data) return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
def book(request, id): book = Book.objects.get(pk=id) if not request.user.has_perm('shop.view_book') and book.id == 5: pass p = Payment(amount=1000, user=request.user, description="Blah Blah") p.save() return p.pay() context = { 'book': book, } return render(request, 'shop/book.html', context)
def create(self, request, *args, **kwargs): if request.user.is_staff: serializer = MeetingRoomBookingAdminCreateSerializer( data=request.data) serializer.is_valid(raise_exception=True) self.perform_create(serializer) headers = self.get_success_headers(serializer.data) return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers) serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) # Date room_type = serializer.validated_data['room_type'] date_start = serializer.validated_data['date_start'] date_end = serializer.validated_data['date_end'] room = MeetingRoom.objects.filter( type=room_type, is_active=True).exclude( meetingroombooking__date_end__gt=date_start, meetingroombooking__date_start__lt=date_end, meetingroombooking__is_canceled=False).first() if room is None: return Response({"room_type": "Not available."}, status=status.HTTP_400_BAD_REQUEST) # Payment room_type = serializer.validated_data['room_type'] payment = Payment.pay( serializer.validated_data['card_token'], room_type.price * round((date_end - date_start).seconds / 3600)) if payment is None: return Response({"error": "Cannot make payment."}, status=status.HTTP_402_PAYMENT_REQUIRED) # Save serializer.save(room=room, payment=payment, user=request.user) headers = self.get_success_headers(serializer.data) return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)