コード例 #1
0
    def before_get_object(self, view_kwargs):
        """
        before get method to get the resource id for fetching details
        :param view_kwargs:
        :return:
        """
        if view_kwargs.get('attendee_id'):
            attendee = safe_query_kwargs(TicketHolder, view_kwargs,
                                         'attendee_id')
            view_kwargs['id'] = attendee.order.id
        if view_kwargs.get('order_identifier'):
            order = safe_query_kwargs(Order, view_kwargs, 'order_identifier',
                                      'identifier')
            view_kwargs['id'] = order.id
        elif view_kwargs.get('id'):
            order = safe_query_by_id(Order, view_kwargs['id'])

        if not has_access(
                'is_coorganizer_or_user_itself',
                event_id=order.event_id,
                user_id=order.user_id,
        ):
            raise ForbiddenError(
                {'source': ''},
                'You can only access your orders or your event\'s orders')

        # expire the initializing order if time limit is over.
        set_expiry_for_order(order)
コード例 #2
0
    def test_should_not_expire_valid_orders(self):
        """Method to test to not mark valid orders as expired"""

        with app.test_request_context():
            obj = OrderFactory()
            event = EventFactoryBasic()
            obj.event = event
            set_expiry_for_order(obj)
            self.assertEqual(obj.status, 'pending')
コード例 #3
0
    def test_should_not_expire_valid_orders(self):
        """Method to test to not mark valid orders as expired"""

        with app.test_request_context():
            obj = OrderFactory()
            event = EventFactoryBasic()
            obj.event = event
            set_expiry_for_order(obj)
            self.assertEqual(obj.status, 'pending')
コード例 #4
0
    def test_should_not_expire_valid_orders(self):
        """Method to test to not mark valid orders as expired"""

        with self.app.test_request_context():
            obj = OrderFactory()
            event = EventFactoryBasic()
            obj.event = event
            db.session.commit()
            set_expiry_for_order(obj)
            assert obj.status == 'initializing'
コード例 #5
0
    def test_should_expire_outdated_order(self):
        """Method to test expiration of outdated orders"""

        with app.test_request_context():
            obj = OrderFactory()
            event = EventFactoryBasic()
            obj.event = event
            obj.created_at = datetime.now(
                timezone.utc) - timedelta(minutes=obj.event.order_expiry_time)
            set_expiry_for_order(obj)
            self.assertEqual(obj.status, 'expired')
コード例 #6
0
    def test_should_expire_outdated_order(self):
        """Method to test expiration of outdated orders"""

        with app.test_request_context():
            obj = OrderFactory()
            event = EventFactoryBasic()
            obj.event = event
            obj.created_at = datetime.now(timezone.utc) - timedelta(
                minutes=obj.event.order_expiry_time)
            set_expiry_for_order(obj)
            self.assertEqual(obj.status, 'expired')
コード例 #7
0
ファイル: orders.py プロジェクト: shawnjots/eventcity
    def query(self, view_kwargs):
        query_ = self.session.query(Order)
        if view_kwargs.get('user_id'):
            # orders under a user
            user = safe_query(self, User, 'id', view_kwargs['user_id'], 'user_id')
            if not has_access('is_user_itself', user_id=user.id):
                raise ForbiddenException({'source': ''}, 'Access Forbidden')
            query_ = query_.join(User, User.id == Order.user_id).filter(User.id == user.id)
        else:
            # orders under an event
            query_ = event_query(self, query_, view_kwargs)

        # expire the initializing orders if the time limit is over.
        orders = query_.all()
        for order in orders:
            set_expiry_for_order(order)

        return query_
コード例 #8
0
    def query(self, view_kwargs):
        query_ = self.session.query(Order)
        if view_kwargs.get('user_id'):
            # orders under a user
            user = safe_query(self, User, 'id', view_kwargs['user_id'], 'user_id')
            if not has_access('is_user_itself', user_id=user.id):
                raise ForbiddenException({'source': ''}, 'Access Forbidden')
            query_ = query_.join(User, User.id == Order.user_id).filter(User.id == user.id)
        else:
            # orders under an event
            query_ = event_query(self, query_, view_kwargs)

        # expire the pending orders if the time limit is over.
        orders = query_.all()
        for order in orders:
            set_expiry_for_order(order)

        return query_
コード例 #9
0
    def before_get_object(self, view_kwargs):
        """
        before get method to get the resource id for fetching details
        :param view_kwargs:
        :return:
        """
        if view_kwargs.get('attendee_id'):
            attendee = safe_query(self, TicketHolder, 'id', view_kwargs['attendee_id'], 'attendee_id')
            view_kwargs['id'] = attendee.order.id
        if view_kwargs.get('order_identifier'):
            order = safe_query(self, Order, 'identifier', view_kwargs['order_identifier'], 'order_identifier')
            view_kwargs['id'] = order.id
        elif view_kwargs.get('id'):
            order = safe_query(self, Order, 'id', view_kwargs['id'], 'id')

        if not has_access('is_coorganizer_or_user_itself', event_id=order.event_id, user_id=order.user_id):
            return ForbiddenException({'source': ''}, 'You can only access your orders or your event\'s orders')

        # expire the pending order if time limit is over.
        set_expiry_for_order(order)