From 27253c2ed27a7005acaa6f93f0db188734adc384 Mon Sep 17 00:00:00 2001 From: Mike0001-droid Date: Mon, 22 Jul 2024 10:19:32 +0500 Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20=D0=B2=D0=BE=D0=B7=D0=BC=D0=BE=D0=B6=D0=BD=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D1=8C=20=D0=B4=D0=BB=D1=8F=20=D0=BE=D1=82=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B2=D0=BA=D0=B8=20=D0=BD=D0=B0=20=D0=BF=D0=BE=D1=87?= =?UTF-8?q?=D1=82=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/proj/config_site/schemas.py | 32 ++++++++++++++++++++++++++++++ server/proj/config_site/views.py | 22 +++++++++++++++++--- 2 files changed, 51 insertions(+), 3 deletions(-) create mode 100644 server/proj/config_site/schemas.py diff --git a/server/proj/config_site/schemas.py b/server/proj/config_site/schemas.py new file mode 100644 index 0000000..4971aee --- /dev/null +++ b/server/proj/config_site/schemas.py @@ -0,0 +1,32 @@ +from rest_framework.schemas import AutoSchema +import coreapi +import coreschema + +class SendMailSchema(AutoSchema): + def get_serializer_fields(self, path, method): + return [ + coreapi.Field( + name='FCs', + location='form', + required=False, + schema=coreschema.String(description='ФИО') + ), + coreapi.Field( + name='Name of organization', + location='form', + required=False, + schema=coreschema.String(description='Название организации') + ), + coreapi.Field( + name='Email', + location='form', + required=False, + schema=coreschema.String(description='Почта отправителя') + ), + coreapi.Field( + name='Text', + location='form', + required=False, + schema=coreschema.String(description='Текст сообщения') + ), + ] \ No newline at end of file diff --git a/server/proj/config_site/views.py b/server/proj/config_site/views.py index df50a1e..dfb31ec 100644 --- a/server/proj/config_site/views.py +++ b/server/proj/config_site/views.py @@ -1,8 +1,12 @@ from rest_framework.viewsets import GenericViewSet from rest_framework.response import Response from rest_framework import status -from .models import Team, SupportInfo -from .serializers import TeamSerializer, SupportInfoSerializer +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): @@ -22,4 +26,16 @@ class SupportInfoViewSet(GenericViewSet): queryset = self.get_queryset().first() serializer = self.get_serializer(queryset) return Response(serializer.data, status=status.HTTP_200_OK) - \ No newline at end of file + + @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) + \ No newline at end of file