aboutsummaryrefslogtreecommitdiffstats
path: root/dashboard/app/api.go
diff options
context:
space:
mode:
authorTaras Madan <tarasmadan@google.com>2024-12-20 10:29:36 +0100
committerTaras Madan <tarasmadan@google.com>2024-12-20 11:13:03 +0000
commitfbda11f5b337448b53c4ad8fe36c11d439bb66e9 (patch)
treeefa92a1faac82c1a957565817d4f9c56fa2fcbfb /dashboard/app/api.go
parent49cfeac8a68105a32e4d9bb4e06d1b80e6b0657f (diff)
dashboard/app: fix parsing bug and accept "gs://" prefixes
Bug: payload is a serialized json, not string.
Diffstat (limited to 'dashboard/app/api.go')
-rw-r--r--dashboard/app/api.go10
1 files changed, 5 insertions, 5 deletions
diff --git a/dashboard/app/api.go b/dashboard/app/api.go
index 4699a9a0d..cba7ee43b 100644
--- a/dashboard/app/api.go
+++ b/dashboard/app/api.go
@@ -176,17 +176,17 @@ func contextNamespace(c context.Context) string {
func gcsPayloadHandler(handler APIHandler) APIHandler {
return func(c context.Context, payload io.Reader) (interface{}, error) {
- p, err := io.ReadAll(payload)
- if err != nil {
- return nil, fmt.Errorf("io.ReadAll: %w", err)
+ var gcsURL string
+ if err := json.NewDecoder(payload).Decode(&gcsURL); err != nil {
+ return nil, fmt.Errorf("json.NewDecoder(payload).Decode(&gcsURL): %w", err)
}
- payloadURL := string(p)
+ gcsURL = strings.TrimPrefix(gcsURL, "gs://")
clientGCS, err := gcs.NewClient(c)
if err != nil {
return nil, fmt.Errorf("gcs.NewClient: %w", err)
}
defer clientGCS.Close()
- gcsFile, err := clientGCS.Read(payloadURL)
+ gcsFile, err := clientGCS.Read(gcsURL)
if err != nil {
return nil, fmt.Errorf("clientGCS.Read: %w", err)
}