Files
Eric Rakestraw ecea856e8e
All checks were successful
ci/woodpecker/push/build-image Pipeline was successful
Implemented weather stories support
2026-05-30 07:06:29 -05:00

49 lines
1.3 KiB
Go

// weatherstories.go presents weather story payloads.
// Layer: adapters/inbound/httpapi/presenter weather stories payload mapping.
package presenter
import (
"time"
"gitea.maximumdirect.net/ejr/weatherfeeder/model"
)
func WeatherStoryRunPayload(run *model.WeatherStoryRun, _ Units, tz *time.Location) any {
if run == nil {
return nil
}
out := model.WeatherStoryRun{
OfficeID: run.OfficeID,
AsOf: inLocationTime(run.AsOf, tz),
Stories: make([]model.WeatherStory, 0, len(run.Stories)),
}
for _, story := range run.Stories {
out.Stories = append(out.Stories, copyWeatherStory(story, tz))
}
return &out
}
func WeatherStoryPayload(story *model.WeatherStory, _ Units, tz *time.Location) any {
if story == nil {
return nil
}
out := copyWeatherStory(*story, tz)
return &out
}
func copyWeatherStory(story model.WeatherStory, tz *time.Location) model.WeatherStory {
return model.WeatherStory{
OfficeID: story.OfficeID,
StartTime: inLocationTime(story.StartTime, tz),
EndTime: inLocationTime(story.EndTime, tz),
UpdatedAt: inLocationTime(story.UpdatedAt, tz),
Title: story.Title,
Description: story.Description,
AltText: story.AltText,
Priority: story.Priority,
Order: story.Order,
DownloadURL: story.DownloadURL,
}
}