From 4e188cd57eaf54de59715680eaa9c10a59770f33 Mon Sep 17 00:00:00 2001 From: DJ Gillespie Date: Sat, 12 Oct 2024 12:24:29 -0600 Subject: [PATCH] add banks to connection viewset. Change plaid auth to return connection serializer --- connection/serializers.py | 19 ++++++++++++++++--- connection/views.py | 2 +- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/connection/serializers.py b/connection/serializers.py index dc05c06..68b7054 100755 --- a/connection/serializers.py +++ b/connection/serializers.py @@ -1,5 +1,6 @@ from rest_framework import serializers from .models import ConnectionType, Connection +from qrtr_account.models import BankAccount class ConnectionTypeSerializer(serializers.HyperlinkedModelSerializer): @@ -11,12 +12,24 @@ class ConnectionTypeSerializer(serializers.HyperlinkedModelSerializer): 'filename': {'read_only': True} } - -class ConnectionSerializer(serializers.HyperlinkedModelSerializer): +class ConnectionAccountSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = Connection - fields = ['url', 'name', 'type', 'credentials'] + fields = ['pk', 'url', 'name', 'type'] + +class BankAccountReadSerializer(serializers.HyperlinkedModelSerializer): + connection = ConnectionAccountSerializer(read_only=True) + class Meta: + model = BankAccount + fields = ['pk', 'url', 'connection'] + +class ConnectionSerializer(serializers.HyperlinkedModelSerializer): + bank_accounts = BankAccountReadSerializer(read_only=True, source='*') + class Meta: + model = Connection + fields = ['url', 'name', 'type', 'credentials', 'bank_accounts'] extra_kwargs = { 'type': {'write_only': True}, 'credentials': {'write_only': True} } + diff --git a/connection/views.py b/connection/views.py index 0bb80c7..f604a1a 100644 --- a/connection/views.py +++ b/connection/views.py @@ -78,7 +78,7 @@ class ConnectionViewSet(viewsets.ModelViewSet, OwnedAccountsMixin): conn.credentials = plaid_client.credentials print(f"CREDS: {plaid_client.credentials}") conn.save() - return Response(plaid_client.get_accounts()) + return Response(self.get_serializer(conn).data) @action(detail=False, methods=['post'], url_path='plaid') def authenticate(self, request):