release_view.go 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package service
  2. import "cmr-backend/internal/store/postgres"
  3. const (
  4. LaunchSourceEventCurrentRelease = "event_current_release"
  5. LaunchModeManifestRelease = "manifest_release"
  6. )
  7. type ResolvedReleaseView struct {
  8. LaunchMode string `json:"launchMode"`
  9. Source string `json:"source"`
  10. EventID string `json:"eventId"`
  11. ReleaseID string `json:"releaseId"`
  12. ConfigLabel string `json:"configLabel"`
  13. ManifestURL string `json:"manifestUrl"`
  14. ManifestChecksumSha256 *string `json:"manifestChecksumSha256,omitempty"`
  15. RouteCode *string `json:"routeCode,omitempty"`
  16. }
  17. func buildResolvedReleaseFromEvent(event *postgres.Event, source string) *ResolvedReleaseView {
  18. if event == nil || event.CurrentReleasePubID == nil || event.ConfigLabel == nil || event.ManifestURL == nil {
  19. return nil
  20. }
  21. return &ResolvedReleaseView{
  22. LaunchMode: LaunchModeManifestRelease,
  23. Source: source,
  24. EventID: event.PublicID,
  25. ReleaseID: *event.CurrentReleasePubID,
  26. ConfigLabel: *event.ConfigLabel,
  27. ManifestURL: *event.ManifestURL,
  28. ManifestChecksumSha256: event.ManifestChecksum,
  29. RouteCode: event.RouteCode,
  30. }
  31. }
  32. func buildResolvedReleaseFromSession(session *postgres.Session, source string) *ResolvedReleaseView {
  33. if session == nil || session.ReleasePublicID == nil || session.ConfigLabel == nil || session.ManifestURL == nil {
  34. return nil
  35. }
  36. view := &ResolvedReleaseView{
  37. LaunchMode: LaunchModeManifestRelease,
  38. Source: source,
  39. ReleaseID: *session.ReleasePublicID,
  40. ConfigLabel: *session.ConfigLabel,
  41. ManifestURL: *session.ManifestURL,
  42. ManifestChecksumSha256: session.ManifestChecksum,
  43. RouteCode: session.RouteCode,
  44. }
  45. if session.EventPublicID != nil {
  46. view.EventID = *session.EventPublicID
  47. }
  48. return view
  49. }