diff --git a/db/queries/queries.sql b/db/queries/queries.sql index 9584c8a..6a6257b 100644 --- a/db/queries/queries.sql +++ b/db/queries/queries.sql @@ -222,8 +222,8 @@ LEFT JOIN LATERAL ( ) po ON true LEFT JOIN observers o ON o.id = po.observer_id WHERE - ($1 = 0 OR p.payload_type = $1) - AND ($2 = 0 OR p.route_type = $2) + ($1::smallint = -1 OR p.payload_type = $1::smallint) + AND ($2::smallint = -1 OR p.route_type = $2::smallint) AND ($3 = '' OR po.iata ILIKE $3) AND ($4::timestamptz IS NULL OR p.first_heard_at >= $4) AND ($5::timestamptz IS NULL OR p.first_heard_at <= $5) diff --git a/db/sqlc/queries.sql.go b/db/sqlc/queries.sql.go index d2ec3cf..422504c 100644 --- a/db/sqlc/queries.sql.go +++ b/db/sqlc/queries.sql.go @@ -1777,8 +1777,8 @@ LEFT JOIN LATERAL ( ) po ON true LEFT JOIN observers o ON o.id = po.observer_id WHERE - ($1 = 0 OR p.payload_type = $1) - AND ($2 = 0 OR p.route_type = $2) + ($1::smallint = -1 OR p.payload_type = $1::smallint) + AND ($2::smallint = -1 OR p.route_type = $2::smallint) AND ($3 = '' OR po.iata ILIKE $3) AND ($4::timestamptz IS NULL OR p.first_heard_at >= $4) AND ($5::timestamptz IS NULL OR p.first_heard_at <= $5) @@ -1788,8 +1788,8 @@ LIMIT $7 ` type ListPacketsParams struct { - Column1 interface{} `json:"column_1"` - Column2 interface{} `json:"column_2"` + Column1 int16 `json:"column_1"` + Column2 int16 `json:"column_2"` Column3 interface{} `json:"column_3"` Column4 pgtype.Timestamptz `json:"column_4"` Column5 pgtype.Timestamptz `json:"column_5"` diff --git a/internal/api/handlers/packets.go b/internal/api/handlers/packets.go index c19c7d3..5f8673a 100644 --- a/internal/api/handlers/packets.go +++ b/internal/api/handlers/packets.go @@ -40,7 +40,7 @@ func PacketsRouter(reader api.Reader) http.Handler { // @Router /packets [get] func listPackets(reader api.Reader) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { - var payloadType int16 + var payloadType int16 = -1 if p := r.URL.Query().Get("payloadType"); p != "" { t, err := strconv.ParseInt(p, 10, 16) if err != nil { @@ -49,12 +49,12 @@ func listPackets(reader api.Reader) http.HandlerFunc { } payloadType = int16(t) } - if payloadType == 0 { + if payloadType == -1 { if p := r.URL.Query().Get("payloadTypeName"); p != "" { payloadType = api.PayloadTypeFromString(p) } } - var routeType int16 + var routeType int16 = -1 if p := r.URL.Query().Get("routeType"); p != "" { t, err := strconv.ParseInt(p, 10, 16) if err != nil { diff --git a/internal/api/helpers.go b/internal/api/helpers.go index 54ecc85..d291d8c 100644 --- a/internal/api/helpers.go +++ b/internal/api/helpers.go @@ -47,7 +47,7 @@ func PayloadTypeName(t int16) string { } // PayloadTypeFromString returns the integer payload type for a given name. -// Returns 0 (no filter) if the string is empty or unrecognized. +// Returns -1 (no filter) if the string is empty or unrecognized. func PayloadTypeFromString(s string) int16 { switch strings.ToLower(s) { case "request", "req": @@ -77,7 +77,7 @@ func PayloadTypeFromString(s string) int16 { case "raw_custom", "raw", "custom": return int16(meshcore.PayloadTypeRawCustom) default: - return 0 + return -1 } }