From 2745a3d0312c8f92905630a03baee2f7910e5cf4 Mon Sep 17 00:00:00 2001 From: Raphael Deem Date: Wed, 4 Dec 2024 21:39:49 -0800 Subject: [PATCH] cancellation fixes --- brokers/base_broker.py | 4 ++-- brokers/tastytrade_broker.py | 10 +++------- brokers/tradier_broker.py | 4 ++-- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/brokers/base_broker.py b/brokers/base_broker.py index dd5c24cb..cc4ffd93 100644 --- a/brokers/base_broker.py +++ b/brokers/base_broker.py @@ -476,7 +476,7 @@ async def get_order_status(self, order_id): try: order_status = self._get_order_status(order_id) async with self.Session() as session: - trade = await session.execute(session.query(Trade).filter_by(id=order_id)) + trade = await.session.execute(select(Trade).filter_by(id=order_id)) trade = trade.scalars().first() if trade: await self.update_trade(session, trade.id, order_status) @@ -494,7 +494,7 @@ async def cancel_order(self, order_id): try: cancel_status = self._cancel_order(order_id) async with self.Session() as session: - trade = await session.execute(session.query(Trade).filter_by(id=order_id)) + trade = await.session.execute(select(Trade).filter_by(id=order_id)) trade = trade.scalars().first() if trade: await self.update_trade(session, trade.id, 'cancelled') diff --git a/brokers/tastytrade_broker.py b/brokers/tastytrade_broker.py index d59e597e..eac8889b 100644 --- a/brokers/tastytrade_broker.py +++ b/brokers/tastytrade_broker.py @@ -359,13 +359,9 @@ def _get_order_status(self, order_id): def _cancel_order(self, order_id): logger.info('Cancelling order', extra={'order_id': order_id}) try: - response = requests.put( - f"{self.base_url}/accounts/{self.account_id}/orders/{order_id}/cancel", headers=self.headers) - response.raise_for_status() - cancellation_response = response.json() - logger.info('Order cancelled successfully', extra={ - 'cancellation_response': cancellation_response}) - return cancellation_response + account = Account.get_account(self.session, self.account_id) + account.delete_order(self.session, order_id) + logger.info('Order cancelled successfully') except requests.RequestException as e: logger.error('Failed to cancel order', extra={'error': str(e)}) diff --git a/brokers/tradier_broker.py b/brokers/tradier_broker.py index c037badf..88db549e 100644 --- a/brokers/tradier_broker.py +++ b/brokers/tradier_broker.py @@ -297,7 +297,7 @@ def _get_order_status(self, order_id): logger.info('Retrieving order status', extra={'order_id': order_id}) try: response = requests.get( - f"{self.base_url}/accounts/orders/{order_id}", headers=self.headers) + f"{self.base_url}/accounts/{self.account_id}/orders/{order_id}", headers=self.headers) response.raise_for_status() order_status = response.json() logger.info('Order status retrieved', extra={ @@ -311,7 +311,7 @@ def _cancel_order(self, order_id): logger.info('Cancelling order', extra={'order_id': order_id}) try: response = requests.delete( - f"{self.base_url}/accounts/orders/{order_id}", headers=self.headers) + f"{self.base_url}/accounts/{self.account_id}/orders/{order_id}", headers=self.headers) response.raise_for_status() cancellation_response = response.json() logger.info('Order cancelled successfully', extra={