mehdihadeli/go-food-delivery-microservices

Getting Error on filter query

usamasaif opened this issue · 1 comments

func (ep *getProductsEndpoint) handler() echo.HandlerFunc {
return func(c echo.Context) error {
ctx := c.Request().Context()
ep.CatalogsMetrics.GetProductsHttpRequests.Add(ctx, 1)

	fmt.Println("Raw query parameters:", c.QueryParams())

	listQuery, err := utils.GetListQueryFromCtx(c)
	if err != nil {
		badRequestErr := customErrors.NewBadRequestErrorWrap(
			err,
			"[getProductsEndpoint_handler.GetListQueryFromCtx] error in getting data from query string",
		)
		ep.Logger.Errorf(
			fmt.Sprintf(
				"[getProductsEndpoint_handler.GetListQueryFromCtx] err: %v",
				badRequestErr,
			),
		)
		return err
	}

	request := &dtos.GetProductsRequestDto{ListQuery: listQuery}
	if err := c.Bind(request); err != nil {
		badRequestErr := customErrors.NewBadRequestErrorWrap(
			err,
			"[getProductsEndpoint_handler.Bind] error in the binding request",
		)
		ep.Logger.Errorf(
			fmt.Sprintf("[getProductsEndpoint_handler.Bind] err: %v", badRequestErr),
		)
		return badRequestErr
	}

	query, err := queries.NewGetProducts(request.ListQuery)
	if err != nil {
		return err
	}

	queryResult, err := mediatr.Send[*queries.GetProducts, *dtos.GetProductsResponseDto](
		ctx,
		query,
	)
	if err != nil {
		err = errors.WithMessage(
			err,
			"[getProductsEndpoint_handler.Send] error in sending GetProducts",
		)
		ep.Logger.Error(fmt.Sprintf("[getProductsEndpoint_handler.Send] err: {%v}", err))
		return err
	}

	return c.JSON(http.StatusOK, queryResult)
}

}

http://localhost:7000/api/v1/products?size=10&page=1&filters={field:price,value:100,comparison:eq}
i m getting this error
{
"status": 400,
"title": "Bad Request",
"detail": "[getProductsEndpoint_handler.Bind] error in the binding request: code=400, message=unknown type, internal=unknown type",
"type": "https://httpstatuses.io/400",
"timestamp": "2024-07-03T18:36:30.959922+05:00",
"stackTrace": "code=400, message=unknown type, internal=unknown type\n[getProductsEndpoint_handler.Bind] error in the binding request\ngithub.com/mehdihadeli/go-ecommerce-microservices/internal/pkg/http/http_errors/custom_errors.NewBadRequestErrorWrap\n\t/Users/usamasaif/Desktop/go-food-delivery-microservices/internal/pkg/http/http_errors/custom_errors/bad_request_error.go:22\ngithub.com/mehdihadeli/go-ecommerce-microservices/internal/services/catalogwriteservice/internal/products/features/getting_products/v1/endpoints.(*getProductsEndpoint).MapEndpoint.(*getProductsEndpoint).handler.func1\n\t/Users/usamasaif/Desktop/go-food-delivery-microservices/internal/services/catalog_write_service/internal/products/features/getting_products/v1/endpoints/get_products_endpoint.go:66\ngithub.com/labstack/echo/v4.(*Echo).add.func1\n\t/Users/usamasaif/Documents/go/pkg/mod/github.com/labstack/echo/v4@v4.11.1/echo.go:582\ngithub.com/labstack/echo/v4/middleware.GzipWithConfig.func1.1\n\t/Users/usamasaif/Documents/go/pkg/mod/github.com/labstack/echo/v4@v4.11.1/middleware/compress.go:140\ngithub.com/mehdihadeli/go-ecommerce-microservices/internal/pkg/http/custom_echo.(*echoHttpServer).SetupDefaultMiddlewares.RequestID.RequestIDWithConfig.func5.1\n\t/Users/usamasaif/Documents/go/pkg/mod/github.com/labstack/echo/v4@v4.11.1/middleware/request_id.go:70\ngithub.com/labstack/echo/v4/middleware.BodyLimitWithConfig.func1.1\n\t/Users/usamasaif/Documents/go/pkg/mod/github.com/labstack/echo/v4@v4.11.1/middleware/body_limit.go:87\ngithub.com/labstack/echo/v4/middleware.RequestLoggerConfig.ToMiddleware.func1.1\n\t/Users/usamasaif/Documents/go/pkg/mod/github.com/labstack/echo/v4@v4.11.1/middleware/request_logger.go:259\ngithub.com/mehdihadeli/go-ecommerce-microservices/internal/pkg/http/custom_echo/middlewares/otel_metrics.Middleware.func1.1\n\t/Users/usamasaif/Desktop/go-food-delivery-microservices/internal/pkg/http/custom_echo/middlewares/otel_metrics/request_status_middleware.go:32\ngo.opentelemetry.io/contrib/instrumentation/github.com/labstack/echo/otelecho.Middleware.func1.1\n\t/Users/usamasaif/Documents/go/pkg/mod/go.opentelemetry.io/contrib/instrumentation/github.com/labstack/echo/otelecho@v0.43.0/echo.go:92\ngithub.com/mehdihadeli/go-ecommerce-microservices/internal/pkg/http/custom_echo.(*echoHttpServer).SetupDefaultMiddlewares.EchoLogger.func4.1\n\t/Users/usamasaif/Desktop/go-food-delivery-microservices/internal/pkg/http/custom_echo/middlewares/log/log_middleware.go:17\ngithub.com/labstack/echo/v4.(*Echo).ServeHTTP\n\t/Users/usamasaif/Documents/go/pkg/mod/github.com/labstack/echo/v4@v4.11.1/echo.go:669\nnet/http.serverHandler.ServeHTTP\n\t/usr/local/go/src/net/http/server.go:3137\nnet/http.(*conn).serve\n\t/usr/local/go/src/net/http/server.go:2039\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1695\n"
}

Welcome to go-ecommerce-microservices. Thank you for reporting your first issue. Please check out our contributor guide.