import requests from django.conf import settings from rest_framework import status from rest_framework.views import APIView from rest_framework.response import Response from api.utils.decorators import handle_exceptions from api.main.serializers import FAQMainSerializer, NewsMainSerializer, TelegramSerializer from sitemanagement.models import FAQ, News class FAQView(APIView): @handle_exceptions def get(self, request): faqs = FAQ.objects.all() data = { 'faqs': FAQMainSerializer(faqs, many=True).data } return Response(data, status=status.HTTP_200_OK) class NewsView(APIView): @handle_exceptions def get(self, request): news = News.objects.all() data = { 'news': NewsMainSerializer(news, many=True).data } return Response(data, status=status.HTTP_200_OK) class TelegramMessageView(APIView): @handle_exceptions def post(self, request): serializer = TelegramSerializer(data=request.data) if not serializer.is_valid(): return Response( {"error": "Invalid data provided", "details": serializer.errors}, status=status.HTTP_400_BAD_REQUEST ) # формируем сообщение из полей message_obj = serializer.save() message = ( f"#{message_obj.source}\n" f"Name: {message_obj.name}\n" f"Phone number: {message_obj.phone_number}\n" f"Message: {message_obj.message}" ) response = requests.post( f'https://api.telegram.org/bot{settings.BOT_TOKEN}/sendMessage', json={ 'chat_id': settings.CHAT_ID, 'text': message, } ) response.raise_for_status() return Response( {"success": "Message sent successfully"}, status=status.HTTP_201_CREATED )