Mercurial > gemma
changeset 5221:6794e85dc2dd new-fwa
Write headers.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Tue, 12 May 2020 10:29:25 +0200 |
parents | 142ac550bd9a |
children | 0ef27f10f9e2 |
files | pkg/controllers/fwa.go |
diffstat | 1 files changed, 32 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/pkg/controllers/fwa.go Tue May 12 10:15:32 2020 +0200 +++ b/pkg/controllers/fwa.go Tue May 12 10:29:25 2020 +0200 @@ -16,6 +16,7 @@ import ( "context" "database/sql" + "encoding/csv" "fmt" "log" "net/http" @@ -198,10 +199,6 @@ return } - // TODO: Use this. - availability := vars["type"] == "availability" - _ = availability - ctx := req.Context() conn := middleware.GetDBConn(req) @@ -278,6 +275,31 @@ return } + availability := vars["type"] == "availability" + + var record []string + if availability { + // in days + record = makeHeader(useDepth && useWidth, 1, breaks, 'd') + } else { + // percentage + record = makeHeader(useDepth && useWidth, 3, breaks, '%') + } + + rw.Header().Add("Content-Type", "text/csv") + + out := csv.NewWriter(rw) + + if err := out.Write(record); err != nil { + // Too late for HTTP status message. + log.Printf("error: %v\n", err) + return + } + + for i := range record[1:] { + record[i+1] = "0.0" + } + // For every day on every bottleneck we need to find out if this day is valid. validities := make([]func(time.Time, time.Time) *limitingValidity, len(bottlenecks)) for i := range bottlenecks { @@ -356,6 +378,12 @@ } // TODO: Log missing LDCs + + out.Flush() + if err := out.Error(); err != nil { + // Too late for HTTP status message. + log.Printf("error: %v\n", err) + } } func dusk(t time.Time) time.Time {