Add backend foundation and config-driven workbench
This commit is contained in:
56
backend/internal/service/release_view.go
Normal file
56
backend/internal/service/release_view.go
Normal file
@@ -0,0 +1,56 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user