fix(api): Escape endpoint key in URL for raw APIs (#1381)
This commit is contained in:
11
api/raw.go
11
api/raw.go
@@ -3,6 +3,7 @@ package api
|
|||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"net/url"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/TwiN/gatus/v5/storage/store"
|
"github.com/TwiN/gatus/v5/storage/store"
|
||||||
@@ -25,7 +26,10 @@ func UptimeRaw(c *fiber.Ctx) error {
|
|||||||
default:
|
default:
|
||||||
return c.Status(400).SendString("Durations supported: 30d, 7d, 24h, 1h")
|
return c.Status(400).SendString("Durations supported: 30d, 7d, 24h, 1h")
|
||||||
}
|
}
|
||||||
key := c.Params("key")
|
key, err := url.QueryUnescape(c.Params("key"))
|
||||||
|
if err != nil {
|
||||||
|
return c.Status(400).SendString("invalid key encoding")
|
||||||
|
}
|
||||||
uptime, err := store.Get().GetUptimeByKey(key, from, time.Now())
|
uptime, err := store.Get().GetUptimeByKey(key, from, time.Now())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if errors.Is(err, common.ErrEndpointNotFound) {
|
if errors.Is(err, common.ErrEndpointNotFound) {
|
||||||
@@ -57,7 +61,10 @@ func ResponseTimeRaw(c *fiber.Ctx) error {
|
|||||||
default:
|
default:
|
||||||
return c.Status(400).SendString("Durations supported: 30d, 7d, 24h, 1h")
|
return c.Status(400).SendString("Durations supported: 30d, 7d, 24h, 1h")
|
||||||
}
|
}
|
||||||
key := c.Params("key")
|
key, err := url.QueryUnescape(c.Params("key"))
|
||||||
|
if err != nil {
|
||||||
|
return c.Status(400).SendString("invalid key encoding")
|
||||||
|
}
|
||||||
responseTime, err := store.Get().GetAverageResponseTimeByKey(key, from, time.Now())
|
responseTime, err := store.Get().GetAverageResponseTimeByKey(key, from, time.Now())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if errors.Is(err, common.ErrEndpointNotFound) {
|
if errors.Is(err, common.ErrEndpointNotFound) {
|
||||||
|
|||||||
Reference in New Issue
Block a user