import imp
from django.shortcuts import render
from userapp.models import *
from .serializers import *
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
from django.http import JsonResponse



# Create your views here.
class getUserList(APIView):
	def get(self, request):
		user_info_data = {}
		try:
			# user_id = request.user.id
			# print('user_id',user_id)
			# if user_id:
			# 	user_info_data = {}
			user_post = UserInfo.objects.all().order_by('-id')
			print('user_post',user_post)
			if user_post:
				user_posts_serializer = UserListSerializer(user_post, many=True) 
				user_info_data = user_posts_serializer.data
				message ,code ,status = 'Fetched successfully.','success' ,200 
			else:
					message ,code,status = 'No User data.',200,'success'
			# else:
			# 		message ,code,status = 'Invalid User.',200,'success'
		except Exception as e:
			message ,code,status = 'Something went wrong :' +str(e) ,500,'error'

		return Response(user_info_data)
		# serializer = UserListSerializer(data=request.data)
		# print('serializer==',serializer)
		# if serializer.is_valid():
		#     return Response({"status": "success", "data": serializer.data}, status=status.HTTP_200_OK)
		# else:
		#     return Response({"status": "error", "data": serializer.errors}, status=status.HTTP_400_BAD_REQUEST)

		

class getReportList(APIView):
	
	def get(self, request):
		user_report_data = {}
		try:
			# user_id = request.user.id
			# print('user_id',user_id)
			
			# if user_id:
			user_report = KeyClickesInfo.objects.all().order_by('-id')
			print('user_report',user_report)
			if user_report:
				user_report_serializer = UserReportSerializer(user_report,many=True)
				user_report_data = user_report_serializer.data
				message ,code ,status = 'Fetched successfully.','success' ,200 
			else:
					message ,code,status = 'No User data.',200,'success'
			# else:

			# 	message ,code,status = 'Invalid User',200,'success'
		except Exception as e:
			message ,code,status = 'Something went wrong :' +str(e) ,500,'error'

		return Response({'message': message ,'status' : status , 'code' : code ,'info' : user_report_data})


class getAddedpostList(APIView):

	def get(self, request):
		added_report_data = {}
		try:
			user_added = UserAddedPost.objects.filter().order_by('-id')
			if user_added:
				user_added_serializer = AddedPostSerializer(user_added,many=True)
				added_report_data = user_added_serializer.data
				message, code ,status = 'Fetched successfully.', 'success' ,200 

			else:
					message ,code,status = 'No User data.',200,'success'
				
		except Exception as e:
			message ,code,status = 'Something went wrong :' +str(e) ,500,'error'

		return Response(added_report_data)


class ViewGenerateReport(APIView):
    
	def get(self, request):
		added_perpost_data = {}
		try:
			
			user_added = KeyClickInfoPerPost.objects.all().order_by('-id')
			if user_added:
				user_added_serializer = PerPostclickSerializer(user_added,many=True)
				added_perpost_data = user_added_serializer.data
				message, code ,status = 'Fetched successfully.', 'success' ,200 

			else:
					message ,code,status = 'No User data.',200,'success'
				
		except Exception as e:
			message ,code,status = 'Something went wrong :' +str(e) ,500,'error'

		return Response(added_perpost_data)


