From 8b4a7330beccfefd2cd536a2a4c6d46592cb56f8 Mon Sep 17 00:00:00 2001 From: Patrick Pacher Date: Thu, 14 Sep 2023 08:42:52 +0200 Subject: [PATCH] netquery: make parseQueryRequestPayload generic --- netquery/query_handler.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/netquery/query_handler.go b/netquery/query_handler.go index bf2933d5..cb64db4d 100644 --- a/netquery/query_handler.go +++ b/netquery/query_handler.go @@ -25,11 +25,16 @@ type ( IsDevMode func() bool Database *Database } + + BatchQueryHandler struct { + IsDevMode func() bool + Database *Database + } ) func (qh *QueryHandler) ServeHTTP(resp http.ResponseWriter, req *http.Request) { start := time.Now() - requestPayload, err := parseQueryRequestPayload(req) + requestPayload, err := parseQueryRequestPayload[QueryRequestPayload](req) if err != nil { http.Error(resp, err.Error(), http.StatusBadRequest) @@ -105,8 +110,11 @@ func (qh *QueryHandler) ServeHTTP(resp http.ResponseWriter, req *http.Request) { } } -func parseQueryRequestPayload(req *http.Request) (*QueryRequestPayload, error) { //nolint:dupl - var body io.Reader +func parseQueryRequestPayload[T any](req *http.Request) (*T, error) { //nolint:dupl + var ( + body io.Reader + requestPayload T + ) switch req.Method { case http.MethodPost, http.MethodPut: @@ -117,7 +125,6 @@ func parseQueryRequestPayload(req *http.Request) (*QueryRequestPayload, error) { return nil, fmt.Errorf("invalid HTTP method") } - var requestPayload QueryRequestPayload blob, err := io.ReadAll(body) if err != nil { return nil, fmt.Errorf("failed to read body" + err.Error())