environment.go 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. package models
  2. import (
  3. "github.com/porter-dev/porter/api/types"
  4. "gorm.io/gorm"
  5. )
  6. type EnvironmentMode uint
  7. type Environment struct {
  8. gorm.Model
  9. ProjectID uint
  10. ClusterID uint
  11. GitInstallationID uint
  12. GitRepoOwner string
  13. GitRepoName string
  14. Name string
  15. Mode string
  16. }
  17. func (e *Environment) ToEnvironmentType() *types.Environment {
  18. return &types.Environment{
  19. ID: e.Model.ID,
  20. ProjectID: e.ProjectID,
  21. ClusterID: e.ClusterID,
  22. GitInstallationID: e.GitInstallationID,
  23. GitRepoOwner: e.GitRepoOwner,
  24. GitRepoName: e.GitRepoName,
  25. Name: e.Name,
  26. Mode: e.Mode,
  27. }
  28. }
  29. type Deployment struct {
  30. gorm.Model
  31. EnvironmentID uint
  32. Namespace string
  33. Status types.DeploymentStatus
  34. Subdomain string
  35. PullRequestID uint
  36. GHDeploymentID int64
  37. PRName string
  38. RepoName string
  39. RepoOwner string
  40. CommitSHA string
  41. PRBranchFrom string
  42. PRBranchInto string
  43. }
  44. func (d *Deployment) ToDeploymentType() *types.Deployment {
  45. ghMetadata := &types.GitHubMetadata{
  46. DeploymentID: d.GHDeploymentID,
  47. PRName: d.PRName,
  48. RepoName: d.RepoName,
  49. RepoOwner: d.RepoOwner,
  50. CommitSHA: d.CommitSHA,
  51. PRBranchFrom: d.PRBranchFrom,
  52. PRBranchInto: d.PRBranchInto,
  53. }
  54. return &types.Deployment{
  55. CreatedAt: d.CreatedAt,
  56. UpdatedAt: d.UpdatedAt,
  57. ID: d.Model.ID,
  58. EnvironmentID: d.EnvironmentID,
  59. Namespace: d.Namespace,
  60. Status: d.Status,
  61. Subdomain: d.Subdomain,
  62. PullRequestID: d.PullRequestID,
  63. GitHubMetadata: ghMetadata,
  64. }
  65. }
  66. type DeploymentWithEnvironment struct {
  67. gorm.Model
  68. Environment *Environment
  69. Namespace string
  70. Status types.DeploymentStatus
  71. Subdomain string
  72. PullRequestID uint
  73. GHDeploymentID int64
  74. PRName string
  75. RepoName string
  76. RepoOwner string
  77. CommitSHA string
  78. }
  79. func (d *DeploymentWithEnvironment) ToDeploymentType() *types.Deployment {
  80. ghMetadata := &types.GitHubMetadata{
  81. DeploymentID: d.GHDeploymentID,
  82. PRName: d.PRName,
  83. RepoName: d.RepoName,
  84. RepoOwner: d.RepoOwner,
  85. CommitSHA: d.CommitSHA,
  86. }
  87. return &types.Deployment{
  88. CreatedAt: d.CreatedAt,
  89. UpdatedAt: d.UpdatedAt,
  90. ID: d.Model.ID,
  91. EnvironmentID: d.Environment.ID,
  92. GitInstallationID: d.Environment.GitInstallationID,
  93. Namespace: d.Namespace,
  94. Status: d.Status,
  95. Subdomain: d.Subdomain,
  96. PullRequestID: d.PullRequestID,
  97. GitHubMetadata: ghMetadata,
  98. }
  99. }