Files
goodtimes/manage_referrals/api/views.py
rizwanisready db213d3228 wrong commit
2024-02-29 13:25:50 +05:30

56 lines
1.9 KiB
Python

from rest_framework import status
from rest_framework.views import APIView
from django.conf import settings
from manage_referrals.models import ReferralCode, ReferralRecord
from goodtimes import constants
from goodtimes.utils import ApiResponse
from .serializers import (
ReferralCodeSerializer,
ReferralRecordSerializer,
)
from rest_framework.permissions import IsAuthenticated
from rest_framework_simplejwt.authentication import JWTAuthentication
from rest_framework.response import Response
class ReferralCodeViews(APIView):
authentication_classes = [JWTAuthentication]
permission_classes = [IsAuthenticated]
model = ReferralCode
serializer = ReferralCodeSerializer
def get(self, request, *args, **kwargs):
referral_obj = self.model.filter_referral_code(
principal=request.user, principal_type=kwargs.get("principal_type")
)
serializer_obj = self.serializer(referral_obj, many=True)
success_message = {
"status": status.HTTP_200_OK,
"message": constants.SUCCESS,
"data": serializer_obj.data,
}
return ApiResponse.success(**success_message)
class ReferralRecordViews(APIView):
authentication_classes = [JWTAuthentication]
permission_classes = [IsAuthenticated]
model = ReferralRecord
serializer = ReferralRecordSerializer
def get(self, request, *args, **kwargs):
referral_obj = self.model.filter_invite_records(
referrer_principal=request.user, principal_type=kwargs.get("principal_type")
)
serializer_obj = self.serializer(referral_obj, many=True)
success_message = {
"status": status.HTTP_200_OK,
"message": constants.SUCCESS,
"data": {"count": referral_obj.count(), "record": serializer_obj.data},
}
return ApiResponse.success(**success_message)