Expose Order model

This commit is contained in:
fnux 2020-02-27 12:42:24 +01:00
parent f5eadd6ddb
commit 1ff5702ce3
3 changed files with 29 additions and 6 deletions

View file

@ -31,11 +31,13 @@ router.register(r'vm/vm', vmviews.VMProductViewSet, basename='vmproduct')
# Pay
router.register(r'user', payviews.UserViewSet, basename='user')
router.register(r'bill', payviews.BillViewSet, basename='bill')
router.register(r'order', payviews.OrderViewSet, basename='order')
router.register(r'payment', payviews.PaymentViewSet, basename='payment')
# admin/staff urls
router.register(r'admin/bill', payviews.AdminBillViewSet, basename='admin/bill')
router.register(r'admin/payment', payviews.AdminPaymentViewSet, basename='admin/payment')
router.register(r'admin/order', payviews.AdminOrderViewSet, basename='admin/order')
router.register(r'admin/vmhost', vmviews.VMHostViewSet)
router.register(r'admin/opennebula', oneviews.VMViewSet, basename='opennebula')
router.register(r'admin/opennebula_raw', oneviews.RawVMViewSet)

View file

@ -1,17 +1,24 @@
from django.contrib.auth import get_user_model
from rest_framework import serializers
from .models import Bill, Payment
from .models import Bill, Payment, Order
class BillSerializer(serializers.ModelSerializer):
class Meta:
model = Bill
fields = ['owner', 'amount', 'due_date', 'creation_date', 'starting_date', 'ending_date', 'paid']
fields = ['owner', 'amount', 'due_date', 'creation_date',
'starting_date', 'ending_date', 'paid']
class PaymentSerializer(serializers.ModelSerializer):
class Meta:
model = Payment
fields = ['owner', 'amount', 'source', 'timestamp']
class OrderSerializer(serializers.ModelSerializer):
class Meta:
model = Order
fields = ['owner', 'creation_date', 'starting_date', 'ending_date',
'bill', 'recurring_price', 'one_time_price', 'recurring_period']
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = get_user_model()

View file

@ -4,8 +4,8 @@ from rest_framework import viewsets, permissions, status
from rest_framework.response import Response
from rest_framework.decorators import action
from .models import Bill, Payment
from .serializers import BillSerializer, PaymentSerializer, UserSerializer
from .models import Bill, Payment, Order
from .serializers import BillSerializer, PaymentSerializer, UserSerializer, OrderSerializer
from datetime import datetime
###
@ -40,6 +40,13 @@ class PaymentViewSet(viewsets.ReadOnlyModelViewSet):
def get_queryset(self):
return Payment.objects.filter(owner=self.request.user)
class OrderViewSet(viewsets.ReadOnlyModelViewSet):
serializer_class = OrderSerializer
permission_classes = [permissions.IsAuthenticated]
def get_queryset(self):
return Order.objects.filter(owner=self.request.user)
class UserViewSet(viewsets.ReadOnlyModelViewSet):
serializer_class = UserSerializer
permission_classes = [permissions.IsAuthenticated]
@ -59,7 +66,7 @@ class AdminPaymentViewSet(viewsets.ModelViewSet):
permission_classes = [permissions.IsAuthenticated]
def get_queryset(self):
return Payment.objects.filter(owner=self.request.user)
return Payment.objects.all()
def create(self, request):
serializer = self.get_serializer(data=request.data)
@ -74,7 +81,7 @@ class AdminBillViewSet(viewsets.ModelViewSet):
permission_classes = [permissions.IsAuthenticated]
def get_queryset(self):
return Bill.objects.filter(owner=self.request.user)
return Bill.objects.all()
def unpaid(self, request):
return Bill.objects.filter(owner=self.request.user, paid=False)
@ -86,3 +93,10 @@ class AdminBillViewSet(viewsets.ModelViewSet):
headers = self.get_success_headers(serializer.data)
return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
class AdminOrderViewSet(viewsets.ModelViewSet):
serializer_class = OrderSerializer
permission_classes = [permissions.IsAuthenticated]
def get_queryset(self):
return Order.objects.all()