environment.go 2.2 KB

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