75 lines
2.5 KiB
Python
75 lines
2.5 KiB
Python
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
|