Commit 8dff21eb authored by Rafal's avatar Rafal

Add place_user_promotions

parent 22a72260
......@@ -8,17 +8,19 @@ from django.shortcuts import render
from rest_framework import viewsets
from rest_framework.authtoken.models import Token
from rest_framework.authtoken.serializers import AuthTokenSerializer
from rest_framework.decorators import list_route
from rest_framework.decorators import list_route, detail_route
from rest_framework.response import Response
from rest_framework import viewsets, permissions
from rest_framework.views import APIView
from App.loyaltyMe.models import Place
from App.loyaltyMe.serializers import LocalizationSerializer
from App.user.models import UserProfile, UserPromotion
from App.user.serializers import UserSerializer, AuthTokenSerializerByEmail, UserProfileSerializer, \
UserPromotionSerializer
from rest_framework import parsers, renderers
class UserViewSet(viewsets.ModelViewSet):
"""
API for articles
......@@ -31,7 +33,7 @@ class UserViewSet(viewsets.ModelViewSet):
def me(self, request, pk=None):
user = User.objects.filter(pk=request.user.id)[0]
user_data = UserSerializer(user, context={'request': request}).data
return Response(status=rest_framework.status.HTTP_200_OK, data= user_data)
return Response(status=rest_framework.status.HTTP_200_OK, data=user_data)
class UserProfileViewSet(viewsets.ModelViewSet):
......@@ -59,6 +61,7 @@ class UserProfileViewSet(viewsets.ModelViewSet):
user_profile_data = UserProfileSerializer(user_profile, context={'request': request}).data
return Response(status=rest_framework.status.HTTP_200_OK, data=user_profile_data)
class ObtainAuthToken(APIView):
throttle_classes = ()
permission_classes = ()
......@@ -76,17 +79,48 @@ class ObtainAuthToken(APIView):
obtain_auth_token = ObtainAuthToken.as_view()
class UserPromotionViewSet(viewsets.ModelViewSet):
"""
API for articles
"""
# class UserPromotionViewSet(viewsets.ModelViewSet):
# """
# API for articles
# """
# queryset = UserPromotion.objects.all()
# serializer_class = UserPromotionSerializer
# permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
#
# def list(self, request):
# user = request.user
# queryset = UserPromotion.objects.filter(user=user)
# page = self.paginate_queryset(queryset)
# serializer = UserPromotionSerializer(page, many=True, context={'request': request})
# return self.get_paginated_response(serializer.data)
# @list_route(methods=['post', 'get'], permission_classes=[permissions.IsAuthenticated])
# def place(self, request, pk=None):
# place = Place.objects.filter(pk=pk)[0]
# user_promotions = request.user.user_promotions.filter(place=place)
# print(user_promotions)
#
# # if (user_profile.like_counter>=award.like_needed):
# # user_profile.like_counter-=award.like_needed
# # user_profile.save()
# # new_user_award = UserAward.objects.create(award=award, user=request.user)
# # new_user_award.save()
# # new_user_award_data = UserAwardSerializer(new_user_award, context={'request': request}).data
# # return Response(status=rest_framework.status.HTTP_200_OK, data=new_user_award_data)
# # else:
# # return Response(status=rest_framework.status.HTTP_405_METHOD_NOT_ALLOWED, data= "Not enough likes!")
class PlaceUserPromotionsViewSet(viewsets.ModelViewSet):
base_name = "place_user_promotions"
queryset = UserPromotion.objects.all()
serializer_class = UserPromotionSerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
def list(self, request):
user = request.user
queryset = UserPromotion.objects.filter(user=user)
page = self.paginate_queryset(queryset)
def retrieve(self, request, pk):
place = Place.objects.filter(pk=pk)[0]
user_promotions = request.user.user_promotion.filter(place=place)
page = self.paginate_queryset(user_promotions)
serializer = UserPromotionSerializer(page, many=True, context={'request': request})
return self.get_paginated_response(serializer.data)
\ No newline at end of file
return self.get_paginated_response(serializer.data)
......@@ -26,7 +26,8 @@ from App.loyaltyMe import views as loyalty_views
router = routers.DefaultRouter()
router.register(r'user', user_views.UserViewSet)
router.register(r'user_profile', user_views.UserProfileViewSet)
router.register(r'user_promotions', user_views.UserPromotionViewSet)
#router.register(r'user_promotions', user_views.UserPromotionViewSet)
router.register(r'place_user_promotions', user_views.PlaceUserPromotionsViewSet)
router.register(r'products', loyalty_views.ProductViewSet)
router.register(r'offers', loyalty_views.OfferViewSet)
router.register(r'promotions', loyalty_views.PromotionViewSet)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment