from rest_framework.viewsets import GenericViewSet from rest_framework.response import Response from rest_framework import status from rest_framework.decorators import action from config_site.models import Team, SupportInfo from config_site.schemas import SendMailSchema from config_site.serializers import TeamSerializer, SupportInfoSerializer from django.core.mail import EmailMessage from conf import settings class TeamViewSet(GenericViewSet): queryset = Team serializer_class = TeamSerializer def list(self, request): queryset = self.get_queryset().objects.all() serializer = self.get_serializer(queryset, many=True) return Response(serializer.data, status=status.HTTP_200_OK) class SupportInfoViewSet(GenericViewSet): queryset = SupportInfo.objects.all() serializer_class = SupportInfoSerializer def list(self, request): queryset = self.get_queryset().first() serializer = self.get_serializer(queryset) return Response(serializer.data, status=status.HTTP_200_OK) @action(detail=False, methods=['post'], schema=SendMailSchema()) def send_mail(self, request): title = f"{request.data.get('Name of organization')} - {request.data.get('FCs')}" email = EmailMessage( title, request.data.get('Text'), settings.EMAIL_HOST_USER, (request.data.get('Email'),) ) email.send() return Response("Сообщение успешно отправлено!", status=status.HTTP_200_OK)