emile 9 months ago
parent 4a72a44ebc
commit cfea7557e6

@ -4,4 +4,5 @@ from . import views
urlpatterns = [ urlpatterns = [
path('chat-rooms/', views.get_chat_rooms), path('chat-rooms/', views.get_chat_rooms),
path('visitors/', views.get_visitors),
] ]

@ -3,6 +3,7 @@ from osichat.models import *
from rest_framework.decorators import api_view from rest_framework.decorators import api_view
from .serializers import * from .serializers import *
from django.shortcuts import get_object_or_404 from django.shortcuts import get_object_or_404
from django.db.models import Q
@api_view(['GET']) @api_view(['GET'])
def get_chat_rooms(request): def get_chat_rooms(request):
@ -11,3 +12,29 @@ def get_chat_rooms(request):
return successRes(chat_rooms_serializer.data) return successRes(chat_rooms_serializer.data)
@api_view(['GET'])
def get_visitors(request):
start_date = request.data.get("start_date")
end_date = request.data.get("end_date")
if start_date and end_date: #Range of time
visitors = Visitor.objects.filter(Q(visitorlog__visit_date__range=[start_date, end_date]) | Q(visitorlog__left_date__range=[start_date, end_date])).distinct()
elif start_date and not end_date: #Specific date
visitors = Visitor.objects.filter(Q(visitorlog__visit_date=start_date) | Q(visitorlog__left_date=start_date)).distinct()
else: #Active visitors
visitors = Visitor.objects.filter(visitorlog__left_date__isnull=True).distinct()
visitors_count = visitors.count()
visitors_serializer = VisitorSerializer(visitors, many=True)
response_data = {
"count": visitors_count,
"visitors": visitors_serializer.data
}
return successRes(response_data)

Loading…
Cancel
Save