John Williams
06/22/2022, 12:41 PMclass Order:
def __init__(self, id, created, items, status, schedule_id=None,
delivery_id=None, order_=None):
self._order = order_
self._id = id
self._created = created
self.items = [OrderItem(**item) for item in items]
self._status = status
self.schedule_id = schedule_id
self.delivery_id = delivery_id
@property
def id(self):
return self._id or self._order.id
@property
def created(self):
return self._created or self._order.created
@property
def status(self):
return self._status or self._order.status
def cancel(self):
if self.status == 'progress':
response = requests.get(
f'<http://localhost:3001/kitchen/schedule/{self.schedule_id}/cancel>',
data={'order': self.items}
)
if response.status_code == 200:
return
raise APIIntegrationError(
f'Could not cancel order with id {self.id}'
)
if self.status == 'delivery':
raise InvalidActionError(f'Cannot cancel order with id {self.id}')