From 7e0e1008caa1c5c03e6df30556c90dcfe7125040 Mon Sep 17 00:00:00 2001 From: Pieter Noordhuis Date: Mon, 16 Oct 2023 20:17:17 +0200 Subject: [PATCH] Fix rendering of streaming response The update to the Go SDK v0.23.0 in #772 included a change to make the billable usage API return its streaming response. This still did not make the command print out the CSV returned by the API, however. To do so, we call `cmdio.RenderReader` in case the response is a byte stream. Fixes #574. --- .codegen/service.go.tmpl | 11 ++++++++--- cmd/account/billable-usage/billable-usage.go | 3 ++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.codegen/service.go.tmpl b/.codegen/service.go.tmpl index 4ede142d2a2..1ee19acb28c 100644 --- a/.codegen/service.go.tmpl +++ b/.codegen/service.go.tmpl @@ -268,9 +268,14 @@ func init() { if err != nil { return err } - {{if .Response -}} - return cmdio.Render(ctx, response) - {{- else -}} + {{ if .Response -}} + {{- if .IsResponseByteStream -}} + defer response.{{.ResponseBodyField.PascalName}}.Close() + return cmdio.RenderReader(ctx, response.{{.ResponseBodyField.PascalName}}) + {{- else -}} + return cmdio.Render(ctx, response) + {{- end -}} + {{ else -}} return nil {{- end -}} {{- end -}} diff --git a/cmd/account/billable-usage/billable-usage.go b/cmd/account/billable-usage/billable-usage.go index 1dde38f64bd..5e9b33f8c52 100755 --- a/cmd/account/billable-usage/billable-usage.go +++ b/cmd/account/billable-usage/billable-usage.go @@ -85,7 +85,8 @@ func newDownload() *cobra.Command { if err != nil { return err } - return cmdio.Render(ctx, response) + defer response.Contents.Close() + return cmdio.RenderReader(ctx, response.Contents) } // Disable completions since they are not applicable.