forked from uncloud/uncloud
Add naive GenericServiceProduct
This commit is contained in:
parent
83a0ca0e4e
commit
c57780fb4d
6 changed files with 146 additions and 5 deletions
|
|
@ -1,9 +1,10 @@
|
|||
from rest_framework import viewsets, permissions
|
||||
from rest_framework.response import Response
|
||||
from django.db import transaction
|
||||
from django.utils import timezone
|
||||
|
||||
from .models import MatrixServiceProduct
|
||||
from .serializers import MatrixServiceProductSerializer
|
||||
from .models import *
|
||||
from .serializers import *
|
||||
|
||||
from uncloud_pay.helpers import ProductViewSet
|
||||
from uncloud_pay.models import Order
|
||||
|
|
@ -47,7 +48,10 @@ class MatrixServiceProductViewSet(ProductViewSet):
|
|||
# Create base order.)
|
||||
order = Order.objects.create(
|
||||
recurring_period=order_recurring_period,
|
||||
owner=request.user)
|
||||
owner=request.user,
|
||||
starting_date=timezone.now()
|
||||
)
|
||||
order.save()
|
||||
|
||||
# Create unerderlying VM.
|
||||
data = serializer.validated_data.pop('vm')
|
||||
|
|
@ -65,3 +69,45 @@ class MatrixServiceProductViewSet(ProductViewSet):
|
|||
vm=vm)
|
||||
|
||||
return Response(serializer.data)
|
||||
|
||||
class GenericServiceProductViewSet(ProductViewSet):
|
||||
permission_classes = [permissions.IsAuthenticated]
|
||||
serializer_class = GenericServiceProductSerializer
|
||||
|
||||
def get_queryset(self):
|
||||
return GenericServiceProduct.objects.filter(owner=self.request.user)
|
||||
|
||||
@transaction.atomic
|
||||
def create(self, request):
|
||||
# Extract serializer data.
|
||||
serializer = self.get_serializer(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
order_recurring_period = serializer.validated_data.pop("recurring_period")
|
||||
|
||||
# Create base order.
|
||||
order = Order.objects.create(
|
||||
recurring_period=order_recurring_period,
|
||||
owner=request.user,
|
||||
starting_date=timezone.now()
|
||||
)
|
||||
order.save()
|
||||
|
||||
# Create service.
|
||||
print(serializer.validated_data)
|
||||
service = serializer.save(order=order, owner=request.user)
|
||||
|
||||
# XXX: Move this to some kind of on_create hook in parent
|
||||
# Product class?
|
||||
order.add_record(
|
||||
service.one_time_price,
|
||||
service.recurring_price,
|
||||
service.description)
|
||||
|
||||
# XXX: Move this to some kind of on_create hook in parent
|
||||
# Product class?
|
||||
order.add_record(
|
||||
service.one_time_price,
|
||||
service.recurring_price,
|
||||
service.description)
|
||||
|
||||
return Response(serializer.data)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue