from django.shortcuts import render from django.http import Http404 from django.shortcuts import render from oauth2_provider.contrib.rest_framework import TokenMatchesOASRequirements from rest_framework import viewsets, mixins from rest_framework.generics import get_object_or_404 from rest_framework.viewsets import GenericViewSet from .models import Email from .serializers import EmailSerializer from apps.gooyal_oauth2.models import Application from apps.gooyal_oauth2.rest_framework import IsAuthenticatedOrTokenMatchesOASRequirements from apps.gooyal_oauth2.utils import get_application from ..users.models import User class ApplicationEmailViewSet( # mixins.RetrieveModelMixin, mixins.ListModelMixin, # mixins.UpdateModelMixin, # mixins.DestroyModelMixin, mixins.CreateModelMixin, GenericViewSet ): queryset = Email.objects.all() serializer_class = EmailSerializer permission_classes = [IsAuthenticatedOrTokenMatchesOASRequirements] required_alternate_scopes = { "GET": [["notifications.application.email:submit_email"]], "POST": [["notifications.application.email:submit_email"]], } def get_object(self): queryset = self.get_queryset() user_uuid = self.kwargs.get('user_uuid') push_message = get_object_or_404(queryset, user=user_uuid) return push_message def perform_create(self, serializer): user_uuid = self.kwargs.get('user_uuid') user = get_object_or_404(User, uuid=user_uuid) application = get_application(self.request) instance = serializer.save(user=user, application=application) instance.send()