Read outlook discussions from Postgres

This commit is contained in:
2026-06-12 12:56:20 +00:00
parent 14c6954296
commit 82dd304f10
6 changed files with 517 additions and 0 deletions

View File

@@ -40,6 +40,12 @@ func (r *Repository) LatestConvectiveOutlookRun(ctx context.Context) (*model.Wea
}
run.Outlooks = outlooks
discussions, err := r.loadOutlookDiscussions(ctx, row.EventID)
if err != nil {
return nil, err
}
run.Discussions = discussions
return &run, nil
}
@@ -87,3 +93,32 @@ func (r *Repository) loadOutlooks(ctx context.Context, eventID string) ([]model.
}
return out, nil
}
func (r *Repository) loadOutlookDiscussions(ctx context.Context, eventID string) ([]model.WeatherOutlookDiscussion, error) {
rows, err := r.db.QueryContext(ctx, queryOutlookDiscussionsForRun, eventID)
if err != nil {
return nil, fmt.Errorf("query outlook discussions: %w", err)
}
defer rows.Close()
out := make([]model.WeatherOutlookDiscussion, 0)
for rows.Next() {
var row outlookDiscussionRow
if err := rows.Scan(
&row.DiscussionIndex,
&row.Day,
&row.Headline,
&row.Summary,
&row.Discussion,
&row.UpdatedAt,
); err != nil {
return nil, fmt.Errorf("scan outlook discussion row: %w", err)
}
out = append(out, mapOutlookDiscussionRow(row))
}
if err := rows.Err(); err != nil {
return nil, fmt.Errorf("iterate outlook discussion rows: %w", err)
}
return out, nil
}