From 72fb8fc3a55f7c270270e66c0fb75f6a8d6280e4 Mon Sep 17 00:00:00 2001 From: uv-orbs <82281921+uv-orbs@users.noreply.github.com> Date: Thu, 28 Mar 2024 16:51:31 +0200 Subject: [PATCH] Hotfix/zero order (#172) * avoid size price zero in rest level * avoid zero size or price on order level * ddress negative size and price --- service/create_order.go | 10 ++++++++++ transport/rest/create_order.go | 4 ++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/service/create_order.go b/service/create_order.go index f5b1a80d..297af432 100644 --- a/service/create_order.go +++ b/service/create_order.go @@ -58,6 +58,16 @@ func (s *Service) createNewOrder(ctx context.Context, input CreateOrderInput, us logctx.Debug(ctx, "creating new order", logger.String("orderId", orderId.String()), logger.String("clientOrderId", input.ClientOrderID.String())) + if input.Price.IsZero() || input.Price.IsNegative() { + logctx.Warn(ctx, "price has to be positive", logger.String("orderId", orderId.String()), logger.String("price", input.Price.String())) + return models.Order{}, models.ErrInvalidInput + } + + if input.Size.IsZero() || input.Size.IsNegative() { + logctx.Warn(ctx, "size has to be positive", logger.String("orderId", orderId.String()), logger.String("size", input.Size.String())) + return models.Order{}, models.ErrInvalidInput + } + order := models.Order{ Id: orderId, ClientOId: input.ClientOrderID, diff --git a/transport/rest/create_order.go b/transport/rest/create_order.go index 1453d3b3..11f58041 100644 --- a/transport/rest/create_order.go +++ b/transport/rest/create_order.go @@ -190,7 +190,7 @@ func parseFields(_ http.ResponseWriter, input pFInput) (*pfParsed, error) { return nil, fmt.Errorf("'price' is not a valid number format") } - if decPrice.IsNegative() { + if decPrice.IsZero() || decPrice.IsNegative() { return nil, fmt.Errorf("'price' must be positive") } @@ -205,7 +205,7 @@ func parseFields(_ http.ResponseWriter, input pFInput) (*pfParsed, error) { return nil, fmt.Errorf("'size' is not a valid number format") } - if decSize.IsNegative() { + if decSize.IsZero() || decSize.IsNegative() { return nil, fmt.Errorf("'size' must be positive") }