71 lines
2.1 KiB
Python
71 lines
2.1 KiB
Python
from rest_framework import generics
|
|
from rest_framework.response import Response
|
|
from rest_framework.views import APIView
|
|
|
|
from .models import ContactMessage, Doctor, Document, Page, Service, SiteSettings
|
|
from .serializers import (
|
|
ContactMessageSerializer,
|
|
DoctorSerializer,
|
|
DocumentSerializer,
|
|
PageSerializer,
|
|
ServiceSerializer,
|
|
SiteSettingsSerializer,
|
|
)
|
|
|
|
|
|
class HomeAPIView(APIView):
|
|
def get(self, request):
|
|
settings_obj = SiteSettings.objects.order_by("id").first()
|
|
data = {
|
|
"site": SiteSettingsSerializer(settings_obj).data if settings_obj else None,
|
|
"pages": PageSerializer(Page.objects.filter(is_published=True)[:6], many=True).data,
|
|
"services": ServiceSerializer(Service.objects.all()[:6], many=True).data,
|
|
"doctors": DoctorSerializer(Doctor.objects.all(), many=True).data,
|
|
"documents": DocumentSerializer(Document.objects.all()[:4], many=True).data,
|
|
}
|
|
return Response(data)
|
|
|
|
|
|
class SiteSettingsAPIView(generics.RetrieveAPIView):
|
|
serializer_class = SiteSettingsSerializer
|
|
|
|
def get_object(self):
|
|
return SiteSettings.objects.order_by("id").first()
|
|
|
|
|
|
class PageListAPIView(generics.ListAPIView):
|
|
serializer_class = PageSerializer
|
|
queryset = Page.objects.filter(is_published=True)
|
|
|
|
|
|
class PageDetailAPIView(generics.RetrieveAPIView):
|
|
serializer_class = PageSerializer
|
|
lookup_field = "slug"
|
|
queryset = Page.objects.filter(is_published=True)
|
|
|
|
|
|
class ServiceListAPIView(generics.ListAPIView):
|
|
serializer_class = ServiceSerializer
|
|
queryset = Service.objects.all()
|
|
|
|
|
|
class ServiceDetailAPIView(generics.RetrieveAPIView):
|
|
serializer_class = ServiceSerializer
|
|
lookup_field = "slug"
|
|
queryset = Service.objects.all()
|
|
|
|
|
|
class DoctorListAPIView(generics.ListAPIView):
|
|
serializer_class = DoctorSerializer
|
|
queryset = Doctor.objects.all()
|
|
|
|
|
|
class DocumentListAPIView(generics.ListAPIView):
|
|
serializer_class = DocumentSerializer
|
|
queryset = Document.objects.all()
|
|
|
|
|
|
class ContactMessageCreateAPIView(generics.CreateAPIView):
|
|
serializer_class = ContactMessageSerializer
|
|
queryset = ContactMessage.objects.all()
|