package service import "cmr-backend/internal/store/postgres" const ( LaunchSourceEventCurrentRelease = "event_current_release" LaunchModeManifestRelease = "manifest_release" ) type ResolvedReleaseView struct { LaunchMode string `json:"launchMode"` Source string `json:"source"` EventID string `json:"eventId"` ReleaseID string `json:"releaseId"` ConfigLabel string `json:"configLabel"` ManifestURL string `json:"manifestUrl"` ManifestChecksumSha256 *string `json:"manifestChecksumSha256,omitempty"` RouteCode *string `json:"routeCode,omitempty"` } func buildResolvedReleaseFromEvent(event *postgres.Event, source string) *ResolvedReleaseView { if event == nil || event.CurrentReleasePubID == nil || event.ConfigLabel == nil || event.ManifestURL == nil { return nil } return &ResolvedReleaseView{ LaunchMode: LaunchModeManifestRelease, Source: source, EventID: event.PublicID, ReleaseID: *event.CurrentReleasePubID, ConfigLabel: *event.ConfigLabel, ManifestURL: *event.ManifestURL, ManifestChecksumSha256: event.ManifestChecksum, RouteCode: event.RouteCode, } } func buildResolvedReleaseFromSession(session *postgres.Session, source string) *ResolvedReleaseView { if session == nil || session.ReleasePublicID == nil || session.ConfigLabel == nil || session.ManifestURL == nil { return nil } view := &ResolvedReleaseView{ LaunchMode: LaunchModeManifestRelease, Source: source, ReleaseID: *session.ReleasePublicID, ConfigLabel: *session.ConfigLabel, ManifestURL: *session.ManifestURL, ManifestChecksumSha256: session.ManifestChecksum, RouteCode: session.RouteCode, } if session.EventPublicID != nil { view.EventID = *session.EventPublicID } return view }