add banks to connection viewset. Change plaid auth to return connection serializer

This commit is contained in:
DJ Gillespie 2024-10-12 12:24:29 -06:00
parent 20aa85bf08
commit 4e188cd57e
2 changed files with 17 additions and 4 deletions

View File

@ -1,5 +1,6 @@
from rest_framework import serializers from rest_framework import serializers
from .models import ConnectionType, Connection from .models import ConnectionType, Connection
from qrtr_account.models import BankAccount
class ConnectionTypeSerializer(serializers.HyperlinkedModelSerializer): class ConnectionTypeSerializer(serializers.HyperlinkedModelSerializer):
@ -11,12 +12,24 @@ class ConnectionTypeSerializer(serializers.HyperlinkedModelSerializer):
'filename': {'read_only': True} 'filename': {'read_only': True}
} }
class ConnectionAccountSerializer(serializers.HyperlinkedModelSerializer):
class ConnectionSerializer(serializers.HyperlinkedModelSerializer):
class Meta: class Meta:
model = Connection 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 = { extra_kwargs = {
'type': {'write_only': True}, 'type': {'write_only': True},
'credentials': {'write_only': True} 'credentials': {'write_only': True}
} }

View File

@ -78,7 +78,7 @@ class ConnectionViewSet(viewsets.ModelViewSet, OwnedAccountsMixin):
conn.credentials = plaid_client.credentials conn.credentials = plaid_client.credentials
print(f"CREDS: {plaid_client.credentials}") print(f"CREDS: {plaid_client.credentials}")
conn.save() conn.save()
return Response(plaid_client.get_accounts()) return Response(self.get_serializer(conn).data)
@action(detail=False, methods=['post'], url_path='plaid') @action(detail=False, methods=['post'], url_path='plaid')
def authenticate(self, request): def authenticate(self, request):