promotion get promoted
This commit is contained in:
parent
2a6971f106
commit
ee1d1e6e66
3 changed files with 68 additions and 11 deletions
|
|
@ -168,12 +168,15 @@ class ApplicationApiFlowsTests(APITestCase):
|
|||
}
|
||||
}
|
||||
# response = self.client.post(reverse('promotions:user-promote', kwargs={"pk":self.first_ad_view_reward_plan.uuid}), event_create_data, HTTP_AUTHORIZATION=auth, format='json')
|
||||
response = self.client.post(reverse('promotions:promote', kwargs={"plan":self.first_ad_view_reward_plan.uuid}), event_create_data, HTTP_AUTHORIZATION=auth, format='json')
|
||||
response = self.client.post(reverse('promotions:promotion-create', kwargs={"plan":self.first_ad_view_reward_plan.uuid}), event_create_data, HTTP_AUTHORIZATION=auth, format='json')
|
||||
print(response.json())
|
||||
self.first_ad_view_reward_plan.refresh_from_db()
|
||||
self.assertEqual(self.first_ad_view_reward_plan.balance, 10000 - 800)
|
||||
|
||||
# response = self.client.post(reverse('promotions:promote', kwargs={"plan": self.first_ad_view_reward_plan.uuid}), event_create_data, HTTP_AUTHORIZATION=auth, format='json')
|
||||
response = self.client.get(reverse('promotions:promotion-list', kwargs={"plan":self.first_ad_view_reward_plan.uuid}), event_create_data, HTTP_AUTHORIZATION=auth, format='json')
|
||||
print(response.json())
|
||||
|
||||
# response = self.client.post(reverse('promotions:promotion-create', kwargs={"plan": self.first_ad_view_reward_plan.uuid}), event_create_data, HTTP_AUTHORIZATION=auth, format='json')
|
||||
# print(response.json())
|
||||
|
||||
|
||||
|
|
@ -209,7 +212,7 @@ class ApplicationApiFlowsTests(APITestCase):
|
|||
'referral': self.user_2_uuid
|
||||
}
|
||||
}
|
||||
response = self.client.post(reverse('promotions:promote', kwargs={"plan": self.referral_reward_plan.uuid}), event_create_data, HTTP_AUTHORIZATION=auth, format='json')
|
||||
response = self.client.post(reverse('promotions:promotion-create', kwargs={"plan": self.referral_reward_plan.uuid}), event_create_data, HTTP_AUTHORIZATION=auth, format='json')
|
||||
print(response.json())
|
||||
self.referral_reward_plan.refresh_from_db()
|
||||
self.assertEqual(self.referral_reward_plan.balance, 10000 - 1000)
|
||||
|
|
@ -264,15 +267,15 @@ class ApplicationApiFlowsTests(APITestCase):
|
|||
}
|
||||
}
|
||||
self.assertEqual(Event.objects.count(), 0)
|
||||
response = self.client.post(reverse('promotions:event'), submit_referral_create_data, HTTP_AUTHORIZATION=auth, format='json')
|
||||
response = self.client.post(reverse('promotions:event-create'), submit_referral_create_data, HTTP_AUTHORIZATION=auth, format='json')
|
||||
print(response.json())
|
||||
self.settlement_reward_plan.refresh_from_db()
|
||||
self.assertEqual(self.settlement_reward_plan.balance, 100000)
|
||||
self.assertEqual(Event.objects.count(), 1)
|
||||
|
||||
response = self.client.post(reverse('promotions:promote', kwargs={'plan': str(self.settlement_reward_plan.uuid)}), submit_settlement_create_data, HTTP_AUTHORIZATION=auth, format='json')
|
||||
response = self.client.post(reverse('promotions:promotion-create', kwargs={'plan': str(self.settlement_reward_plan.uuid)}), submit_settlement_create_data, HTTP_AUTHORIZATION=auth, format='json')
|
||||
print(response.json())
|
||||
response = self.client.post(reverse('promotions:promote', kwargs={'plan': str(self.settlement_reward_plan.uuid)}), submit_settlement_create_data, HTTP_AUTHORIZATION=auth, format='json')
|
||||
response = self.client.post(reverse('promotions:promotion-create', kwargs={'plan': str(self.settlement_reward_plan.uuid)}), submit_settlement_create_data, HTTP_AUTHORIZATION=auth, format='json')
|
||||
print(response.json())
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ from utils.router import ProfileRouter
|
|||
from . import views
|
||||
from django.urls import NoReverseMatch, path, re_path, include
|
||||
|
||||
from .views import ApplicationPromoteUserApiView, ApplicationSubmitEventAPIView
|
||||
from .views import ApplicationPromoteUserApiView, ApplicationEventSubmitAPIView, ApplicationEventRetrieveAPIView, ApplicationPromotionRetrieveApiView
|
||||
|
||||
app_name = 'promotions'
|
||||
|
||||
|
|
@ -17,7 +17,10 @@ router.register(r'plans', views.UserViewSet, basename='user')
|
|||
# urlpatterns =
|
||||
|
||||
urlpatterns = [
|
||||
path('api/v1/plans/<plan>/', ApplicationPromoteUserApiView.as_view(), name='promotion-create'),
|
||||
path('api/v1/plans/<plan>/promotins', ApplicationPromotionRetrieveApiView.as_view(), name='promotion-list'),
|
||||
path('api/v1/events/submit', ApplicationEventSubmitAPIView.as_view(), name='event-create'),
|
||||
path('api/v1/events/get', ApplicationEventRetrieveAPIView.as_view(), name='event-retrieve'),
|
||||
path('api/v1/', include(router.urls), name='events'),
|
||||
path('api/v1/promote/<plan>/', ApplicationPromoteUserApiView.as_view(), name='promote'),
|
||||
path('api/v1/event/', ApplicationSubmitEventAPIView.as_view(), name='event'),
|
||||
|
||||
]
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ from drf_spectacular.utils import extend_schema
|
|||
from rest_framework import mixins, status
|
||||
from rest_framework.decorators import action
|
||||
from rest_framework import exceptions
|
||||
from rest_framework.generics import CreateAPIView, get_object_or_404
|
||||
from rest_framework.generics import CreateAPIView, get_object_or_404, RetrieveAPIView, ListAPIView
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.viewsets import GenericViewSet
|
||||
|
||||
|
|
@ -178,9 +178,60 @@ class ApplicationPromoteUserApiView(CreateAPIView):
|
|||
headers = self.get_success_headers(serializer.data)
|
||||
return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
|
||||
|
||||
class ApplicationPromotionRetrieveApiView(RetrieveAPIView):
|
||||
model = Promotion
|
||||
serializer_class = PromotionSerializer
|
||||
|
||||
def get_plan(self):
|
||||
plan_uuid = self.kwargs.get('plan')
|
||||
plan = get_object_or_404(Plan, uuid=plan_uuid)
|
||||
return plan
|
||||
|
||||
def get_object(self):
|
||||
user = self.request.user
|
||||
plan = self.get_plan()
|
||||
qs = Promotion.objects.all()
|
||||
return get_object_or_404(qs, user_uuid=user.uuid, plan=plan)
|
||||
|
||||
|
||||
class ApplicationSubmitEventAPIView(CreateAPIView):
|
||||
# def create(self, request, *args, **kwargs):
|
||||
# plan = self.get_plan()
|
||||
# serializer = self.get_serializer(data=request.data)
|
||||
# serializer.is_valid(raise_exception=True)
|
||||
# data = serializer.validated_data
|
||||
# application = get_application(self.request)
|
||||
# event_saver: EventSaver = EventSaver.objects.filter(event_label=serializer.validated_data['label']).first()
|
||||
# # try:
|
||||
# event = event_saver.save_event(user=None, application=application, **serializer.validated_data)
|
||||
# # except Exception as e:
|
||||
# # raise exceptions.ValidationError(str(e))
|
||||
#
|
||||
# result_list = plan.process_event(event)
|
||||
# data["promotions"] = result_list
|
||||
#
|
||||
# headers = self.get_success_headers(serializer.data)
|
||||
# return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
|
||||
|
||||
|
||||
|
||||
class ApplicationEventSubmitAPIView(CreateAPIView):
|
||||
model = Promotion
|
||||
serializer_class = PromoteSerializer
|
||||
|
||||
def create(self, request, *args, **kwargs):
|
||||
serializer = self.get_serializer(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
data = serializer.validated_data
|
||||
application = get_application(self.request)
|
||||
event_saver: EventSaver = EventSaver.objects.filter(event_label=serializer.validated_data['label']).first()
|
||||
event = event_saver.save_event(user=None, application=application, **serializer.validated_data)
|
||||
|
||||
analyze_event_task.delay(event.uuid)
|
||||
|
||||
headers = self.get_success_headers(serializer.data)
|
||||
return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
|
||||
|
||||
class ApplicationEventRetrieveAPIView(RetrieveAPIView):
|
||||
model = Promotion
|
||||
serializer_class = PromoteSerializer
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue