Пример #1
0
class AddCategory(CreateAPIView):
    permission_classes = (PlaceAdmin, RestaurantAdmin)

    def __init__(self):
        self._menu = MenuService()

    @method_decorator(csrf_protect)
    def post(self, request, restaurant_id):
        serializer = CategoryCreateSerializer(data=request.data)

        if not serializer.is_valid():
            return Response(serializer.errors,
                            status=status.HTTP_400_BAD_REQUEST)

        self._menu.create_category(**serializer.validated_data)
        return Response(status=status.HTTP_201_CREATED)
Пример #2
0
class GetMenu(ListAPIView):
    '''
        Get a restaurant's menu
    '''
    permission_classes = (permissions.AllowAny, )

    def __init__(self):
        self._menu = MenuService()

    decorators = [cache_page(settings.ONE_DAY), ensure_csrf_cookie]

    @method_decorator(cache_page(settings.ONE_DAY))
    def get(self, request, name):
        menu = self._menu.get_menu(name)
        serializer = RestaurantCategoryResponseSerializer(menu, many=True)
        return Response(serializer.data)

    def get_queryset(self):
        return self._menu.get_queryset()
Пример #3
0
class GetMenuItemOptions(ListAPIView):
    '''
        Get the options of a menu item. Typically called after GetMenu.
    '''
    permission_classes = (permissions.AllowAny, )

    def __init__(self):
        self._menu = MenuService()

    def get_queryset(self):
        return self._menu.get_queryset()

    #@method_decorator(cache_page(settings.ONE_DAY))
    def get(self, request, restaurant: str, menu_item: str):
        options = self._menu.get_options(restaurant, menu_item)

        serializer = MenuItemOptionResponseSerializer(options, many=True)

        return Response(serializer.data)
Пример #4
0
class AddMenuItem(CreateAPIView):
    permission_classes = (PlaceAdmin, )

    def __init__(self):
        self._menu = MenuService()

    @method_decorator(csrf_protect)
    def post(self, request):
        serializer = MenuItemCreateSerializer(data=request.data)
        if not serializer.is_valid():
            return Response(serializer.errors,
                            status=status.HTTP_400_BAD_REQUEST)

        newid = self._menu.create_menu_item(**serializer.validated_data)
        if newid == -99:
            return INTERNAL_SERVER_ERROR(
                'Could not save the app menu item. Please try again later.')

        return OK(newid)
Пример #5
0
 def __init__(self):
     self._menu = MenuService()