Skip to content

Commit

Permalink
chore(error handling): Add reason to order rejected failure type
Browse files Browse the repository at this point in the history
  • Loading branch information
holzeis committed Mar 6, 2024
1 parent 7a54139 commit bb70acb
Show file tree
Hide file tree
Showing 7 changed files with 16 additions and 13 deletions.
5 changes: 2 additions & 3 deletions mobile/lib/features/trade/domain/order.dart
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,6 @@ class FailureReason {
static const FailureReason timeout = FailureReason._(
failureType: FailureReasonType.timeout,
details: "The order timed out before finding a match");
static const FailureReason rejected =
FailureReason._(failureType: FailureReasonType.rejected, details: "The order was rejected.");
static const FailureReason unknown = FailureReason._(
failureType: FailureReasonType.unknown, details: "An unknown error occurred.");

Expand All @@ -90,7 +88,8 @@ class FailureReason {
case bridge.FailureReason_TimedOut():
return timeout;
case bridge.FailureReason_OrderRejected():
return rejected;
return FailureReason._(
failureType: FailureReasonType.rejected, details: failureReason.field0);
case bridge.FailureReason_Unknown():
return unknown;
}
Expand Down
10 changes: 7 additions & 3 deletions mobile/native/src/db/models.rs
Original file line number Diff line number Diff line change
Expand Up @@ -660,7 +660,7 @@ pub enum FailureReason {
SubchannelOfferOutdated,
SubchannelOfferDateUndetermined,
SubchannelOfferUnacceptable,
OrderRejected,
OrderRejected(String),
Unknown,
}

Expand Down Expand Up @@ -694,7 +694,9 @@ impl From<FailureReason> for crate::trade::order::FailureReason {
InvalidSubchannelOffer::Unacceptable,
)
}
FailureReason::OrderRejected => crate::trade::order::FailureReason::OrderRejected,
FailureReason::OrderRejected(reason) => {
crate::trade::order::FailureReason::OrderRejected(reason)
}
FailureReason::Unknown => crate::trade::order::FailureReason::Unknown,
}
}
Expand Down Expand Up @@ -722,7 +724,9 @@ impl From<crate::trade::order::FailureReason> for FailureReason {
}
InvalidSubchannelOffer::Unacceptable => FailureReason::SubchannelOfferUnacceptable,
},
crate::trade::order::FailureReason::OrderRejected => FailureReason::OrderRejected,
crate::trade::order::FailureReason::OrderRejected(reason) => {
FailureReason::OrderRejected(reason)
}
crate::trade::order::FailureReason::Unknown => FailureReason::Unknown,
}
}
Expand Down
4 changes: 2 additions & 2 deletions mobile/native/src/trade/order/api.rs
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ pub enum FailureReason {
OrderNotAcceptable,
TimedOut,
InvalidDlcOffer,
OrderRejected,
OrderRejected(String),
Unknown,
}

Expand Down Expand Up @@ -144,7 +144,7 @@ impl From<order::FailureReason> for FailureReason {
order::FailureReason::OrderNotAcceptable => FailureReason::OrderNotAcceptable,
order::FailureReason::TimedOut => FailureReason::TimedOut,
order::FailureReason::InvalidDlcOffer(_) => FailureReason::InvalidDlcOffer,
order::FailureReason::OrderRejected => FailureReason::OrderRejected,
order::FailureReason::OrderRejected(reason) => FailureReason::OrderRejected(reason),
order::FailureReason::CollabRevert => FailureReason::CollabRevert,
order::FailureReason::Unknown => FailureReason::Unknown,
}
Expand Down
2 changes: 1 addition & 1 deletion mobile/native/src/trade/order/handler.rs
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ pub async fn submit_order(
update_order_state_in_db_and_ui(
order.id,
OrderState::Failed {
reason: FailureReason::OrderRejected,
reason: FailureReason::OrderRejected(err.to_string()),
},
)
.map_err(SubmitOrderError::Storage)?;
Expand Down
2 changes: 1 addition & 1 deletion mobile/native/src/trade/order/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ pub enum FailureReason {
TimedOut,
InvalidDlcOffer(InvalidSubchannelOffer),
/// The order has been rejected by the orderbook
OrderRejected,
OrderRejected(String),
Unknown,
}

Expand Down
4 changes: 2 additions & 2 deletions mobile/native/src/trade/order/orderbook_client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ impl OrderbookClient {
let response = response.json().await?;
Ok(response)
} else {
tracing::error!("Could not create new order");
bail!("Could not create new order: {response:?}")
let error = response.text().await?;
bail!("Could not create new order: {error}")
}
}
}
2 changes: 1 addition & 1 deletion webapp/src/api.rs
Original file line number Diff line number Diff line change
Expand Up @@ -417,7 +417,7 @@ impl From<&native::trade::order::Order> for Order {
}
InvalidSubchannelOffer::Unacceptable => "OfferUnacceptable",
},
FailureReason::OrderRejected => "OrderRejected",
FailureReason::OrderRejected(_) => "OrderRejected",
FailureReason::Unknown => "Unknown",
}
.to_string();
Expand Down

0 comments on commit bb70acb

Please sign in to comment.