class CreateOrder(CreateAPIView):
    '''
        Create an order
    '''
    permission_classes = (Customer, )

    def __init__(self):
        self._order_service = OrderService()

    #@method_decorator(csrf_protect)
    def post(self, request):
        serializer = OrderCreateSerializer(data=request.data)
        if not serializer.is_valid():
            return BAD_REQUEST(serializer.errors)

        order_is_valid = self._order_service.validate(
            **serializer.validated_data)

        if not order_is_valid:
            return BAD_REQUEST('LMAO you\'re cheating')

        self._order_service.create(request.appuser_id,
                                   **serializer.validated_data)

        return CREATED()
Exemple #2
0
def run():
    '''run app'''

    #initial logging logging config
    logging.config.dictConfig(app_settings.LOGGING)

    OrderService.get_service_name()
    AccountService.get_service_name()
    OrderService.get_path()
class TestOrderService(unittest.TestCase):
    '''Unit Test for order service'''

    def setUp(self):
        "Create test points"
        print 'set up test'
        self.service = OrderService()

    def test_place_order(self):
        self.service.place_order()
        
    def test_get_service_name(self):
        OrderService.get_service_name()
Exemple #4
0
def add_order():
    order_data = json.loads(request.data.decode())
    order_service = OrderService()
    user = order_data['user']
    snack_list = order_data['snack_list']
    location = order_data['location']
    result = order_service.add_order(user, snack_list, location)
    add_order_result_status = result.acknowledged
    if add_order_result_status:
        form_service = FormService()
        access_token = get_access_token()
        form_service.post_order_info(user,
                                     json.loads(access_token)['access_token'])
        return json.dumps({"result": add_order_result_status})
    else:
        return json.dumps({"result": add_order_result_status}), 401
Exemple #5
0
class GetOrders(ListAPIView):
    permission_classes = (PlaceAdmin, RestaurantAdmin)

    def __init__(self):
        self._order_service = OrderService()

    def get(self, request, restaurant_id):
        orders = self._order_service.get_todays_pending_orders(restaurant_id)
        serializer = OrderResponseSerializer(orders, many=True)
        return Response(serializer.data, status=status.HTTP_200_OK)
class CancelOrder(UpdateAPIView):
    permission_classes = (Customer, CanChangeOrder)

    def __init__(self):
        self._order_service = OrderService()

    #@method_decorator(csrf_protect)
    def update(self, request, order_id):
        cancelled, msg = self._order_service.cancel(order_id)
        if cancelled:
            return OK()

        return BAD_REQUEST(msg)
class UpdateOrder(UpdateAPIView):
    permission_classes = (Customer, CanChangeOrder)

    def __init__(self):
        self._order_service = OrderService()

    #@method_decorator(cache_page(60))
    def put(self, request, order_id):
        serializer = OrderCreateSerializer(data=request.data)
        if not serializer.is_valid():
            return BAD_REQUEST(serializer.errors)

        order_is_valid = self._order_service.validate(
            **serializer.validated_data)
        if not order_is_valid:
            return BAD_REQUEST('Lol')

        updated, msg = self._order_service.update(order_id,
                                                  **serializer.validated_data)

        if not updated:
            return BAD_REQUEST(msg)
        return OK('')
Exemple #8
0
class AcceptOrder(UpdateAPIView):
    permission_classes = (PlaceAdmin, AcceptOrder)

    def __init__(self):
        self._order_service = OrderService()

    @method_decorator(csrf_protect)
    def put(self, request, order_id):
        accepted, msg = self._order_service.accept_order(order_id)

        if not accepted:
            return BAD_REQUEST(msg)

        return OK('')
class CanChangeOrder(permissions.BasePermission):
    def __init__(self):
        self.__order_service = OrderService()

    def has_permission(self, request, view):
        if not request.user:
            return False

        order_id = view.kwargs.get('order_id')
        if not order_id:
            return False

        order_appuser_id = self.__order_service.get_appuser_id(order_id)
        if not order_appuser_id or order_appuser_id != request.appuser_id:
            return False

        return True
class AcceptOrder(permissions.BasePermission):
    def __init__(self, *args, **kwargs):
        self._order_service = OrderService()
        self._restaurants_service = RestaurantsService()

    def has_permission(self, request, view):
        order_id = view.kwargs.get('order_id')

        restaurant_id = self._order_service.get_restaurant_id_by_orderid(
            order_id)
        if not restaurant_id:
            return False

        is_restaurant_admin = self._restaurants_service.check_admin(
            request.appuser_id, restaurant_id)

        return is_restaurant_admin
Exemple #11
0
async def order_list(request):
    """
订单列表
:param request:
:return:
"""
    if request.method == 'GET':
        users = request.app.user
        kargs = {}
        kargs["mailNo"] = request.args.get("mailNo", "")
        kargs["sender_name"] = request.args.get("sender_name", "")
        kargs["sender_mobile"] = request.args.get("sender_mobile", "")
        kargs["recive_name"] = request.args.get("recive_name", "")
        kargs["recive_mobile"] = request.args.get("recive_mobile", "")
        query = OrderService().query_list(users, **kargs)
        data = get_page_data(request, query)
        return jinja.render("admin/order-list.html",
                            request,
                            kargs=kargs,
                            data=data)
Exemple #12
0
 def __init__(self):
     self.form_dao = FormDao()
     self.order_service = OrderService()
     self.config = read_config.ConfigReader().get_config()
Exemple #13
0
class FormService:
    def __init__(self):
        self.form_dao = FormDao()
        self.order_service = OrderService()
        self.config = read_config.ConfigReader().get_config()

    def save_form(self, id, form_id, expire_date, is_useful):
        result = self.form_dao.add_form(id, form_id, expire_date, is_useful)
        return result

    def get_available_form_id(self, id):
        available_form = self.form_dao.get_available_form_id(id)
        return available_form

    def update_form_unavailable(self, form_id):
        result = self.form_dao.update_form_unavailable(form_id)
        return result

    def examine_available_form_by_union_id(self, union_id):
        result = self.form_dao.get_available_form_id(union_id)
        if result is None:
            return False
        else:
            return True

    def post_order_info(self, user, access_token):
        available_form_list = self.get_available_form_id(user['unionId'])
        post_message_url = self.config.get("wechat", "post_message_url")
        post_message_template_id = self.config.get("wechat",
                                                   "post_message_template_id")
        keyword_color = self.config.get("wechat", "post_message_keyword_color")
        post_message_mark = self.config.get("wechat", "post_message_mark")
        if available_form_list is not None:
            order_list_by_user = self.order_service.get_order_by_user(
                user['unionId'])
            if order_list_by_user.__len__() > 0:
                latest_order = order_list_by_user[0]
                available_form = available_form_list[0]
                time_show_str = time.strftime(
                    "%Y年%m月%d日 %H:%M:%S",
                    time.strptime(latest_order.get('created_date'),
                                  "%Y/%m/%d %H:%M:%S"))
                location_show_str = latest_order.get('location')
                total_price_show_str = "¥" + str(
                    latest_order.get('total_price'))
                post_url = post_message_url + access_token
                post_data = {
                    'page': 'pages/order/order',
                    'touser': user['openId'],
                    'template_id': post_message_template_id,
                    'form_id': available_form['form_id'],
                    'data': {
                        'keyword1': {
                            'value': time_show_str,
                            'color': keyword_color
                        },
                        'keyword2': {
                            'value': location_show_str,
                            'color': keyword_color
                        },
                        'keyword3': {
                            'value': total_price_show_str,
                            'color': keyword_color
                        },
                        'keyword4': {
                            'value': post_message_mark,
                            'color': keyword_color
                        }
                    }
                }
                requests.post(post_url, json.dumps(post_data))
                result = self.update_form_unavailable(
                    available_form['form_id'])
                return result
            return None
        else:
            return None
 def setUp(self):
     "Create test points"
     print 'set up test'
     self.service = OrderService()
 def test_get_service_name(self):
     OrderService.get_service_name()
 def __init__(self, *args, **kwargs):
     self._order_service = OrderService()
     self._restaurants_service = RestaurantsService()
 def __init__(self):
     self._order_service = OrderService()
Exemple #18
0
def get_order_by_user(user):
    order_service = OrderService()
    return json.dumps(order_service.get_order_by_user(user))