Last active
April 27, 2020 21:14
-
-
Save Runinterface/e9912aa99691a14d720b90f0b70c631e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from rest_framework import status | |
from rest_framework.response import Response | |
from rest_framework.decorators import api_view | |
from orders.models import Menu, Courier, Order, Reviews, News | |
from orders.serializers import MenuSerializer, CouriersSerializer, OrderSerializer, OrderStatusSerializer, ReviewsSerializer, NewsSerializer | |
from rest_registration.models import User | |
@api_view(['GET', 'POST', 'DELETE', 'PUT']) | |
def menu(request, pk=None): | |
if request.method == 'GET': | |
menu = Menu.objects.all() | |
serializer = MenuSerializer(menu, many=True) | |
return Response(serializer.data) | |
elif request.method == 'POST': | |
serializer = MenuSerializer(data=request.data) | |
if serializer.is_valid(): | |
serializer.save() | |
return Response(serializer.data, status=status.HTTP_201_CREATED) | |
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) | |
elif request.method == 'PUT': | |
serializer = MenuSerializer(data=request.data) | |
if serializer.is_valid(): | |
serializer.save() | |
return Response(serializer.data, status=status.HTTP_201_CREATED) | |
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) | |
elif request.method == 'DELETE': | |
try: | |
menu = Menu.objects.get(pk=pk) | |
except Menu.DoesNotExist: | |
return Response(status=status.HTTP_404_NOT_FOUND) | |
menu.delete() | |
return Response(status=status.HTTP_204_NO_CONTENT) | |
@api_view(['GET', 'POST', 'DELETE']) | |
def courier(request, pk=None): | |
if request.method == 'GET': | |
couriers = Courier.objects.all() | |
serializer = CouriersSerializer(couriers, many=True) | |
return Response(serializer.data) | |
elif request.method == 'POST': | |
serializer = CouriersSerializer(data=request.data) | |
if serializer.is_valid(): | |
id_user = request.data['user_id'] | |
user = User.objects.get(id=id_user) | |
user.access_level = 2 | |
user.save() | |
serializer.save() | |
return Response(serializer.data, status=status.HTTP_201_CREATED) | |
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) | |
elif request.method == 'DELETE': | |
try: | |
couriers = Courier.objects.get(pk=pk) | |
profile_id = couriers.user_id | |
user = User.objects.get(id=profile_id) | |
user.access_level = 1 | |
user.save() | |
except Courier.DoesNotExist: | |
return Response(status=status.HTTP_404_NOT_FOUND) | |
couriers.delete() | |
return Response(status=status.HTTP_204_NO_CONTENT) | |
@api_view(['GET', 'POST', 'DELETE', 'PUT']) | |
def order(request, pk=None): | |
if request.method == 'GET': | |
if pk: | |
user_orders = Order.objects.filter(user_id=pk).all() | |
else: | |
user_orders = Order.objects.all() | |
serializer = OrderSerializer(user_orders, many=True) | |
return Response(serializer.data) | |
elif request.method in ['POST', 'PUT']: | |
serializer = OrderSerializer(data=request.data) | |
if serializer.is_valid(): | |
serializer.save() | |
return Response(serializer.data, status=status.HTTP_201_CREATED) | |
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) | |
elif request.method == 'DELETE': | |
try: | |
orders = Order.objects.get(pk=pk) | |
except Order.DoesNotExist: | |
return Response(status=status.HTTP_404_NOT_FOUND) | |
orders.delete() | |
return Response(status=status.HTTP_204_NO_CONTENT) | |
@api_view(['POST']) | |
def order_status(request, pk=None): | |
serializer = OrderStatusSerializer(data=request.data) | |
if serializer.is_valid(): | |
id_order = request.data['id'] | |
new_status = request.data['status'] | |
order = Order.objects.get(id=id_order) | |
order.status = new_status | |
order.save() | |
return Response(serializer.data, status=status.HTTP_201_CREATED) | |
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) | |
@api_view(['GET', 'POST', 'DELETE']) | |
def reviews(request, pk=None): | |
if request.method == 'GET': | |
reviews = Reviews.objects.all() | |
serializer = ReviewsSerializer(reviews, many=True) | |
return Response(serializer.data) | |
elif request.method == 'POST': | |
serializer = ReviewsSerializer(data=request.data) | |
if serializer.is_valid(): | |
serializer.save() | |
return Response(serializer.data, status=status.HTTP_201_CREATED) | |
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) | |
elif request.method == 'DELETE': | |
try: | |
reviews = Reviews.objects.get(pk=pk) | |
except Reviews.DoesNotExist: | |
return Response(status=status.HTTP_404_NOT_FOUND) | |
reviews.delete() | |
return Response(status=status.HTTP_204_NO_CONTENT) | |
@api_view(['GET', 'POST', 'DELETE']) | |
def news(request, pk=None): | |
if request.method == 'GET': | |
news = News.objects.all() | |
serializer = NewsSerializer(news, many=True) | |
return Response(serializer.data) | |
elif request.method == 'POST': | |
serializer = NewsSerializer(data=request.data) | |
if serializer.is_valid(): | |
serializer.save() | |
return Response(serializer.data, status=status.HTTP_201_CREATED) | |
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) | |
elif request.method == 'DELETE': | |
try: | |
news = News.objects.get(pk=pk) | |
print(pk) | |
except News.DoesNotExist: | |
return Response(status=status.HTTP_404_NOT_FOUND) | |
news.delete() | |
return Response(status=status.HTTP_204_NO_CONTENT) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment