Commit 8dff21eb authored by Rafal's avatar Rafal

Add place_user_promotions

parent 22a72260
...@@ -8,17 +8,19 @@ from django.shortcuts import render ...@@ -8,17 +8,19 @@ from django.shortcuts import render
from rest_framework import viewsets from rest_framework import viewsets
from rest_framework.authtoken.models import Token from rest_framework.authtoken.models import Token
from rest_framework.authtoken.serializers import AuthTokenSerializer 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.response import Response
from rest_framework import viewsets, permissions from rest_framework import viewsets, permissions
from rest_framework.views import APIView from rest_framework.views import APIView
from App.loyaltyMe.models import Place
from App.loyaltyMe.serializers import LocalizationSerializer from App.loyaltyMe.serializers import LocalizationSerializer
from App.user.models import UserProfile, UserPromotion from App.user.models import UserProfile, UserPromotion
from App.user.serializers import UserSerializer, AuthTokenSerializerByEmail, UserProfileSerializer, \ from App.user.serializers import UserSerializer, AuthTokenSerializerByEmail, UserProfileSerializer, \
UserPromotionSerializer UserPromotionSerializer
from rest_framework import parsers, renderers from rest_framework import parsers, renderers
class UserViewSet(viewsets.ModelViewSet): class UserViewSet(viewsets.ModelViewSet):
""" """
API for articles API for articles
...@@ -31,7 +33,7 @@ class UserViewSet(viewsets.ModelViewSet): ...@@ -31,7 +33,7 @@ class UserViewSet(viewsets.ModelViewSet):
def me(self, request, pk=None): def me(self, request, pk=None):
user = User.objects.filter(pk=request.user.id)[0] user = User.objects.filter(pk=request.user.id)[0]
user_data = UserSerializer(user, context={'request': request}).data 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): class UserProfileViewSet(viewsets.ModelViewSet):
...@@ -59,6 +61,7 @@ class UserProfileViewSet(viewsets.ModelViewSet): ...@@ -59,6 +61,7 @@ class UserProfileViewSet(viewsets.ModelViewSet):
user_profile_data = UserProfileSerializer(user_profile, context={'request': request}).data user_profile_data = UserProfileSerializer(user_profile, context={'request': request}).data
return Response(status=rest_framework.status.HTTP_200_OK, data=user_profile_data) return Response(status=rest_framework.status.HTTP_200_OK, data=user_profile_data)
class ObtainAuthToken(APIView): class ObtainAuthToken(APIView):
throttle_classes = () throttle_classes = ()
permission_classes = () permission_classes = ()
...@@ -76,17 +79,48 @@ class ObtainAuthToken(APIView): ...@@ -76,17 +79,48 @@ class ObtainAuthToken(APIView):
obtain_auth_token = ObtainAuthToken.as_view() obtain_auth_token = ObtainAuthToken.as_view()
class UserPromotionViewSet(viewsets.ModelViewSet):
""" # class UserPromotionViewSet(viewsets.ModelViewSet):
API for articles # """
""" # 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() queryset = UserPromotion.objects.all()
serializer_class = UserPromotionSerializer serializer_class = UserPromotionSerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly,) permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
def list(self, request): def retrieve(self, request, pk):
user = request.user place = Place.objects.filter(pk=pk)[0]
queryset = UserPromotion.objects.filter(user=user) user_promotions = request.user.user_promotion.filter(place=place)
page = self.paginate_queryset(queryset) page = self.paginate_queryset(user_promotions)
serializer = UserPromotionSerializer(page, many=True, context={'request': request}) serializer = UserPromotionSerializer(page, many=True, context={'request': request})
return self.get_paginated_response(serializer.data) return self.get_paginated_response(serializer.data)
\ No newline at end of file
...@@ -26,7 +26,8 @@ from App.loyaltyMe import views as loyalty_views ...@@ -26,7 +26,8 @@ from App.loyaltyMe import views as loyalty_views
router = routers.DefaultRouter() router = routers.DefaultRouter()
router.register(r'user', user_views.UserViewSet) router.register(r'user', user_views.UserViewSet)
router.register(r'user_profile', user_views.UserProfileViewSet) 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'products', loyalty_views.ProductViewSet)
router.register(r'offers', loyalty_views.OfferViewSet) router.register(r'offers', loyalty_views.OfferViewSet)
router.register(r'promotions', loyalty_views.PromotionViewSet) 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