52 lines
1.7 KiB
Python
52 lines
1.7 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)
|
|
|
|
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)
|
|
|
|
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)
|