from django.shortcuts import render from rest_framework import viewsets, mixins from .models import Account, Bank, Institution, Transaction, Slice, Rule from connection.models import Connection, ConnectionType from api.serializers import (AccountReadSerializer, AccountWriteSerializer, BankSerializer, BankSerializerPOST, InstitutionSerializer, TransactionSerializer, ConnectionSerializer, ConnectionTypeSerializer, SliceSerializer, RuleSerializer) from allauth.socialaccount.providers.facebook.views import FacebookOAuth2Adapter from dj_rest_auth.registration.views import SocialLoginView from allauth.socialaccount.providers.twitter.views import TwitterOAuthAdapter from dj_rest_auth.social_serializers import TwitterLoginSerializer from api.mixins import ReadWriteSerializerMixin class TwitterLogin(SocialLoginView): serializer_class = TwitterLoginSerializer adapter_class = TwitterOAuthAdapter class FacebookLogin(SocialLoginView): adapter_class = FacebookOAuth2Adapter class AccountViewSet(ReadWriteSerializerMixin, viewsets.ModelViewSet): """API endpoint that allows accounts to be viewed or edited """ queryset = Account.objects.all() read_serializer_class = AccountReadSerializer write_serializer_class = AccountWriteSerializer class BankViewSet(viewsets.ModelViewSet): """API endpoint that allows Banks to be viewed or edited """ queryset = Bank.objects.all() # serializer_class = BankSerializer def get_serializer_class(self): if self.action == 'create': return BankSerializerPOST return BankSerializer class InstitutionViewSet(viewsets.ReadOnlyModelViewSet): """API endpoint that allows Banks to be viewed. """ queryset = Institution.objects.all() serializer_class = InstitutionSerializer class TransactionViewSet(viewsets.ReadOnlyModelViewSet): """API endpoint that allows Banks to be viewed. """ queryset = Transaction.objects.all() serializer_class = TransactionSerializer class SliceViewSet(viewsets.ReadOnlyModelViewSet): """API endpoint that allows Banks to be viewed. """ queryset = Slice.objects.all() serializer_class = SliceSerializer class RuleViewSet(viewsets.ReadOnlyModelViewSet): """API endpoint that allows Banks to be viewed. """ queryset = Rule.objects.all() serializer_class = RuleSerializer