Clean up generated text helpers

This commit is contained in:
2026-06-15 12:41:45 +00:00
parent 4fe0f40cef
commit b4e0aadbef
5 changed files with 160 additions and 66 deletions

View File

@@ -2,10 +2,7 @@
package generatedtext
import (
"bytes"
"encoding/json"
"fmt"
"io"
"strings"
)
@@ -17,20 +14,9 @@ type Hourly struct {
}
func ValidateHourly(data []byte) (Hourly, []byte, error) {
decoder := json.NewDecoder(bytes.NewReader(data))
decoder.DisallowUnknownFields()
var value Hourly
if err := decoder.Decode(&value); err != nil {
return Hourly{}, nil, fmt.Errorf("decode hourly generated text: %w", err)
}
var extra any
if err := decoder.Decode(&extra); err != nil {
if err != io.EOF {
return Hourly{}, nil, fmt.Errorf("decode hourly generated text: %w", err)
}
} else {
return Hourly{}, nil, fmt.Errorf("decode hourly generated text: multiple JSON values")
value, err := decodeGeneratedText[Hourly](data, "hourly")
if err != nil {
return Hourly{}, nil, err
}
value.Summary = strings.TrimSpace(value.Summary)
@@ -44,9 +30,9 @@ func ValidateHourly(data []byte) (Hourly, []byte, error) {
return Hourly{}, nil, fmt.Errorf("hourly generated text forecast discussion is required")
}
normalized, err := json.Marshal(value)
normalized, err := normalizeGeneratedText(value, "hourly")
if err != nil {
return Hourly{}, nil, fmt.Errorf("normalize hourly generated text: %w", err)
return Hourly{}, nil, err
}
return value, normalized, nil
}