Wiring initial user balance

This commit is contained in:
fnux 2020-02-27 15:50:46 +01:00
commit 1dd3324275
3 changed files with 23 additions and 13 deletions

View file

@ -2,6 +2,8 @@ from django.contrib.auth import get_user_model
from rest_framework import serializers
from .models import *
from functools import reduce
class BillSerializer(serializers.ModelSerializer):
class Meta:
model = Bill
@ -26,7 +28,16 @@ class OrderSerializer(serializers.ModelSerializer):
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = get_user_model()
fields = ['username', 'email']
fields = ['username', 'email', 'balance']
def get_balance(self, obj):
return 666
# Display current 'balance'
balance = serializers.SerializerMethodField('get_balance')
def __sum_balance(self, entries):
return reduce(lambda acc, entry: acc + entry.amount, entries, 0)
def get_balance(self, user):
bills = self.__sum_balance(Bill.objects.filter(owner=user))
payments = self.__sum_balance(Payment.objects.filter(owner=user))
balance = payments - bills
return balance