mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-06-02 15:10:46 +00:00
orders: add Filter() method to GetOrdersRequest and force FilteredOrders return type on wrapper functions (#1055)
* orders: filter options return on validate * exchanges: force filter usage by wrapper return type and shift method functionality * exchanges: update tests and fix err shadow * exchanges: shadowland * exchanges: more shadow land spookyness * glorious: nits and ftx upgrade * linter: fix * orders: preserve unpopulated fields through filtering operation * glorious: nits Co-authored-by: Ryan O'Hara-Reid <ryan.oharareid@thrasher.io>
This commit is contained in:
@@ -2794,6 +2794,8 @@ func TestGetActiveOrders(t *testing.T) {
|
||||
var getOrdersRequestSpot = order.GetOrdersRequest{
|
||||
Pairs: currency.Pairs{pair},
|
||||
AssetType: asset.Spot,
|
||||
Side: order.AnySide,
|
||||
Type: order.AnyType,
|
||||
}
|
||||
|
||||
_, err = b.GetActiveOrders(context.Background(), &getOrdersRequestSpot)
|
||||
@@ -2804,6 +2806,8 @@ func TestGetActiveOrders(t *testing.T) {
|
||||
var getOrdersRequestUMF = order.GetOrdersRequest{
|
||||
Pairs: currency.Pairs{pair},
|
||||
AssetType: asset.USDTMarginedFutures,
|
||||
Side: order.AnySide,
|
||||
Type: order.AnyType,
|
||||
}
|
||||
|
||||
_, err = b.GetActiveOrders(context.Background(), &getOrdersRequestUMF)
|
||||
@@ -2819,6 +2823,8 @@ func TestGetActiveOrders(t *testing.T) {
|
||||
var getOrdersRequestCMF = order.GetOrdersRequest{
|
||||
Pairs: currency.Pairs{pair1},
|
||||
AssetType: asset.CoinMarginedFutures,
|
||||
Side: order.AnySide,
|
||||
Type: order.AnyType,
|
||||
}
|
||||
|
||||
_, err = b.GetActiveOrders(context.Background(), &getOrdersRequestCMF)
|
||||
@@ -2834,6 +2840,8 @@ func TestGetActiveOrders(t *testing.T) {
|
||||
var getOrdersRequestFutures = order.GetOrdersRequest{
|
||||
Pairs: currency.Pairs{pair2},
|
||||
AssetType: asset.Futures,
|
||||
Side: order.AnySide,
|
||||
Type: order.AnyType,
|
||||
}
|
||||
|
||||
_, err = b.GetActiveOrders(context.Background(), &getOrdersRequestFutures)
|
||||
@@ -2849,6 +2857,8 @@ func TestGetActiveOrders(t *testing.T) {
|
||||
var getOrdersRequestUSDC = order.GetOrdersRequest{
|
||||
Pairs: currency.Pairs{pair3},
|
||||
AssetType: asset.USDCMarginedFutures,
|
||||
Side: order.AnySide,
|
||||
Type: order.AnyType,
|
||||
}
|
||||
|
||||
_, err = b.GetActiveOrders(context.Background(), &getOrdersRequestUSDC)
|
||||
@@ -2871,6 +2881,8 @@ func TestGetOrderHistory(t *testing.T) {
|
||||
var getOrdersRequestSpot = order.GetOrdersRequest{
|
||||
Pairs: currency.Pairs{pair},
|
||||
AssetType: asset.Spot,
|
||||
Type: order.AnyType,
|
||||
Side: order.AnySide,
|
||||
}
|
||||
|
||||
_, err = b.GetOrderHistory(context.Background(), &getOrdersRequestSpot)
|
||||
@@ -2881,6 +2893,8 @@ func TestGetOrderHistory(t *testing.T) {
|
||||
var getOrdersRequestUMF = order.GetOrdersRequest{
|
||||
Pairs: currency.Pairs{pair},
|
||||
AssetType: asset.USDTMarginedFutures,
|
||||
Type: order.AnyType,
|
||||
Side: order.AnySide,
|
||||
}
|
||||
|
||||
_, err = b.GetOrderHistory(context.Background(), &getOrdersRequestUMF)
|
||||
@@ -2896,6 +2910,8 @@ func TestGetOrderHistory(t *testing.T) {
|
||||
var getOrdersRequestCMF = order.GetOrdersRequest{
|
||||
Pairs: currency.Pairs{pair1},
|
||||
AssetType: asset.CoinMarginedFutures,
|
||||
Type: order.AnyType,
|
||||
Side: order.AnySide,
|
||||
}
|
||||
|
||||
_, err = b.GetOrderHistory(context.Background(), &getOrdersRequestCMF)
|
||||
@@ -2911,6 +2927,8 @@ func TestGetOrderHistory(t *testing.T) {
|
||||
var getOrdersRequestFutures = order.GetOrdersRequest{
|
||||
Pairs: currency.Pairs{pair2},
|
||||
AssetType: asset.Futures,
|
||||
Type: order.AnyType,
|
||||
Side: order.AnySide,
|
||||
}
|
||||
|
||||
_, err = b.GetOrderHistory(context.Background(), &getOrdersRequestFutures)
|
||||
@@ -2926,6 +2944,8 @@ func TestGetOrderHistory(t *testing.T) {
|
||||
var getOrdersRequestUSDC = order.GetOrdersRequest{
|
||||
Pairs: currency.Pairs{pair3},
|
||||
AssetType: asset.USDCMarginedFutures,
|
||||
Type: order.AnyType,
|
||||
Side: order.AnySide,
|
||||
}
|
||||
|
||||
_, err = b.GetOrderHistory(context.Background(), &getOrdersRequestUSDC)
|
||||
|
||||
@@ -1406,8 +1406,9 @@ func (by *Bybit) WithdrawFiatFundsToInternationalBank(ctx context.Context, withd
|
||||
}
|
||||
|
||||
// GetActiveOrders retrieves any orders that are active/open
|
||||
func (by *Bybit) GetActiveOrders(ctx context.Context, req *order.GetOrdersRequest) ([]order.Detail, error) {
|
||||
if err := req.Validate(); err != nil {
|
||||
func (by *Bybit) GetActiveOrders(ctx context.Context, req *order.GetOrdersRequest) (order.FilteredOrders, error) {
|
||||
err := req.Validate()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -1557,20 +1558,14 @@ func (by *Bybit) GetActiveOrders(ctx context.Context, req *order.GetOrdersReques
|
||||
default:
|
||||
return orders, fmt.Errorf("%s %w", req.AssetType, asset.ErrNotSupported)
|
||||
}
|
||||
order.FilterOrdersByPairs(&orders, req.Pairs)
|
||||
order.FilterOrdersByType(&orders, req.Type)
|
||||
order.FilterOrdersBySide(&orders, req.Side)
|
||||
err := order.FilterOrdersByTimeRange(&orders, req.StartTime, req.EndTime)
|
||||
if err != nil {
|
||||
log.Errorf(log.ExchangeSys, "%s %v", by.Name, err)
|
||||
}
|
||||
return orders, nil
|
||||
return req.Filter(by.Name, orders), nil
|
||||
}
|
||||
|
||||
// GetOrderHistory retrieves account order information
|
||||
// Can Limit response to specific order status
|
||||
func (by *Bybit) GetOrderHistory(ctx context.Context, req *order.GetOrdersRequest) ([]order.Detail, error) {
|
||||
if err := req.Validate(); err != nil {
|
||||
func (by *Bybit) GetOrderHistory(ctx context.Context, req *order.GetOrdersRequest) (order.FilteredOrders, error) {
|
||||
err := req.Validate()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var orders []order.Detail
|
||||
@@ -1735,14 +1730,7 @@ func (by *Bybit) GetOrderHistory(ctx context.Context, req *order.GetOrdersReques
|
||||
default:
|
||||
return orders, fmt.Errorf("%s %w", req.AssetType, asset.ErrNotSupported)
|
||||
}
|
||||
|
||||
order.FilterOrdersByType(&orders, req.Type)
|
||||
order.FilterOrdersBySide(&orders, req.Side)
|
||||
err := order.FilterOrdersByTimeRange(&orders, req.StartTime, req.EndTime)
|
||||
if err != nil {
|
||||
log.Errorf(log.ExchangeSys, "%s %v", by.Name, err)
|
||||
}
|
||||
return orders, nil
|
||||
return req.Filter(by.Name, orders), nil
|
||||
}
|
||||
|
||||
// GetFeeByType returns an estimate of fee based on the type of transaction
|
||||
|
||||
Reference in New Issue
Block a user