|
|
|
@ -3,6 +3,7 @@ from osichat.models import *
|
|
|
|
|
from rest_framework.decorators import api_view
|
|
|
|
|
from .serializers import *
|
|
|
|
|
from django.shortcuts import get_object_or_404
|
|
|
|
|
from django.db.models import Q
|
|
|
|
|
|
|
|
|
|
@api_view(['GET'])
|
|
|
|
|
def get_chat_rooms(request):
|
|
|
|
@ -11,3 +12,29 @@ def get_chat_rooms(request):
|
|
|
|
|
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)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|