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)
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')
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'
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')
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')
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_
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_
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)