fix(api): Escape endpoint key in URL (#1114)

ISSUE #1100 | Fix bug with URL encoding

Co-authored-by: Семисохин Андрей <semisohin@kinoplan.ru>
Co-authored-by: TwiN <twin@linux.com>
This commit is contained in:
DPKrane
2025-05-31 23:22:49 +03:00
committed by GitHub
parent c449738844
commit 0a9f5d8838
3 changed files with 31 additions and 7 deletions

View File

@@ -4,6 +4,7 @@ import (
"errors"
"math"
"net/http"
"net/url"
"sort"
"time"
@@ -45,7 +46,11 @@ func ResponseTimeChart(c *fiber.Ctx) error {
default:
return c.Status(400).SendString("Durations supported: 30d, 7d, 24h")
}
hourlyAverageResponseTime, err := store.Get().GetHourlyAverageResponseTimeByKey(c.Params("key"), from, time.Now())
key, err := url.QueryUnescape(c.Params("key"))
if err != nil {
return c.Status(400).SendString("invalid key encoding")
}
hourlyAverageResponseTime, err := store.Get().GetHourlyAverageResponseTimeByKey(key, from, time.Now())
if err != nil {
if errors.Is(err, common.ErrEndpointNotFound) {
return c.Status(404).SendString(err.Error())