Skip to content

Commit

Permalink
Core,Grpc.Service: make SendMarketOrder return
Browse files Browse the repository at this point in the history
Make SendMarketOrder return a Match instead of unit.
  • Loading branch information
webwarrior-ws committed Sep 3, 2024
1 parent 5497e37 commit fb814ad
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 6 deletions.
4 changes: 2 additions & 2 deletions src/FX.Core/Exchange.fs
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ type public Exchange(persistenceType: Persistence) =
with get (market: Market): OrderBook =
marketStore.GetOrderBook market

member __.SendMarketOrder (order: OrderInfo, market: Market): unit =
marketStore.ReceiveOrder (OrderRequest.Market(order)) market |> ignore
member __.SendMarketOrder (order: OrderInfo, market: Market): Option<Match> =
marketStore.ReceiveOrder (OrderRequest.Market(order)) market

member __.SendLimitOrder (order: LimitOrderRequest, market: Market): Option<Match> =
marketStore.ReceiveOrder (OrderRequest.Limit(order)) market
Expand Down
8 changes: 4 additions & 4 deletions src/FX.GrpcService/Services/FXService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -30,18 +30,18 @@ public override async Task<GenericOutputParam> GenericMethod(GenericInputParam r
var marketForLimitOrder = new Market(Currency.BTC, Currency.USD);

// TODO: make async
var matchType = exchange.SendLimitOrder(limitOrderReq, marketForLimitOrder);
return await Task.FromResult(new GenericOutputParam { MsgOut = GrpcModels.Marshaller.Serialize(matchType) });
var match = exchange.SendLimitOrder(limitOrderReq, marketForLimitOrder);
return await Task.FromResult(new GenericOutputParam { MsgOut = GrpcModels.Marshaller.Serialize(match) });
}
else if (deserializedRequest is GrpcModels.MarketOrder { } marketOrder)
{
var orderInfo = new OrderInfo(Guid.NewGuid(), Side.Parse(marketOrder.Side), marketOrder.Quantity);
var marketForMarketOrder = new Market(Currency.BTC, Currency.USD);

// TODO: make async
exchange.SendMarketOrder(orderInfo, marketForMarketOrder);
var match = exchange.SendMarketOrder(orderInfo, marketForMarketOrder);
// return empty string?
return await Task.FromResult(new GenericOutputParam { MsgOut = String.Empty });
return await Task.FromResult(new GenericOutputParam { MsgOut = GrpcModels.Marshaller.Serialize(match) });
}
else if (deserializedRequest is GrpcModels.CancelOrderRequest { } cancelOrderRequest)
{
Expand Down

0 comments on commit fb814ad

Please sign in to comment.