def pay_order(self, order_id, user_id): order = self.orders_repository.get(order_id, user_id=user_id) if order is None: raise OrderNotFoundError(f"Order with id {order_id} not found") order.pay() schedule_id = order.schedule() return self.orders_repository.update(order_id, status="progress", schedule_id=schedule_id)
def delete_order(self, order_id, user_id): order = self.orders_repository.get(order_id, user_id=user_id) if order is None: raise OrderNotFoundError(f"Order with id {order_id} not found") return self.orders_repository.delete(order_id)
def cancel_order(self, order_id, user_id): order = self.orders_repository.get(order_id, user_id=user_id) if order is None: raise OrderNotFoundError(f"Order with id {order_id} not found") order.cancel() return self.orders_repository.update(order_id, status="cancelled")
def get_order(self, order_id, **filters): order = self.orders_repository.get(order_id, **filters) if order is not None: return order raise OrderNotFoundError(f"Order with id {order_id} not found")
def update_order(self, order_id, **payload): order = self.orders_repository.get(order_id) if order is None: raise OrderNotFoundError(f'Order with id {order_id} not found') return self.orders_repository.update(order_id, **payload)