diff options
| author | Taras Madan <tarasmadan@google.com> | 2024-12-20 10:29:36 +0100 |
|---|---|---|
| committer | Taras Madan <tarasmadan@google.com> | 2024-12-20 11:13:03 +0000 |
| commit | fbda11f5b337448b53c4ad8fe36c11d439bb66e9 (patch) | |
| tree | efa92a1faac82c1a957565817d4f9c56fa2fcbfb /dashboard/app | |
| parent | 49cfeac8a68105a32e4d9bb4e06d1b80e6b0657f (diff) | |
dashboard/app: fix parsing bug and accept "gs://" prefixes
Bug: payload is a serialized json, not string.
Diffstat (limited to 'dashboard/app')
| -rw-r--r-- | dashboard/app/api.go | 10 |
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) } |
