repository.go 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285
  1. package test
  2. import (
  3. "github.com/porter-dev/porter/internal/repository"
  4. )
  5. type TestRepository struct {
  6. user repository.UserRepository
  7. session repository.SessionRepository
  8. project repository.ProjectRepository
  9. cluster repository.ClusterRepository
  10. helmRepo repository.HelmRepoRepository
  11. registry repository.RegistryRepository
  12. gitRepo repository.GitRepoRepository
  13. gitActionConfig repository.GitActionConfigRepository
  14. invite repository.InviteRepository
  15. release repository.ReleaseRepository
  16. environment repository.EnvironmentRepository
  17. authCode repository.AuthCodeRepository
  18. dnsRecord repository.DNSRecordRepository
  19. pwResetToken repository.PWResetTokenRepository
  20. infra repository.InfraRepository
  21. kubeIntegration repository.KubeIntegrationRepository
  22. basicIntegration repository.BasicIntegrationRepository
  23. oidcIntegration repository.OIDCIntegrationRepository
  24. oauthIntegration repository.OAuthIntegrationRepository
  25. gcpIntegration repository.GCPIntegrationRepository
  26. awsIntegration repository.AWSIntegrationRepository
  27. azIntegration repository.AzureIntegrationRepository
  28. githubAppInstallation repository.GithubAppInstallationRepository
  29. githubAppOAuthIntegration repository.GithubAppOAuthIntegrationRepository
  30. gitlabIntegration repository.GitlabIntegrationRepository
  31. gitlabAppOAuthIntegration repository.GitlabAppOAuthIntegrationRepository
  32. slackIntegration repository.SlackIntegrationRepository
  33. notificationConfig repository.NotificationConfigRepository
  34. jobNotificationConfig repository.JobNotificationConfigRepository
  35. buildEvent repository.BuildEventRepository
  36. kubeEvent repository.KubeEventRepository
  37. projectUsage repository.ProjectUsageRepository
  38. onboarding repository.ProjectOnboardingRepository
  39. ceToken repository.CredentialsExchangeTokenRepository
  40. buildConfig repository.BuildConfigRepository
  41. database repository.DatabaseRepository
  42. allowlist repository.AllowlistRepository
  43. apiToken repository.APITokenRepository
  44. policy repository.PolicyRepository
  45. tag repository.TagRepository
  46. stack repository.StackRepository
  47. monitor repository.MonitorTestResultRepository
  48. apiContractRevision repository.APIContractRevisioner
  49. awsAssumeRoleChainer repository.AWSAssumeRoleChainer
  50. porterApp repository.PorterAppRepository
  51. }
  52. func (t *TestRepository) User() repository.UserRepository {
  53. return t.user
  54. }
  55. func (t *TestRepository) Session() repository.SessionRepository {
  56. return t.session
  57. }
  58. func (t *TestRepository) Project() repository.ProjectRepository {
  59. return t.project
  60. }
  61. func (t *TestRepository) Cluster() repository.ClusterRepository {
  62. return t.cluster
  63. }
  64. func (t *TestRepository) HelmRepo() repository.HelmRepoRepository {
  65. return t.helmRepo
  66. }
  67. func (t *TestRepository) Registry() repository.RegistryRepository {
  68. return t.registry
  69. }
  70. func (t *TestRepository) GitRepo() repository.GitRepoRepository {
  71. return t.gitRepo
  72. }
  73. func (t *TestRepository) GitActionConfig() repository.GitActionConfigRepository {
  74. return t.gitActionConfig
  75. }
  76. func (t *TestRepository) Invite() repository.InviteRepository {
  77. return t.invite
  78. }
  79. func (t *TestRepository) Release() repository.ReleaseRepository {
  80. return t.release
  81. }
  82. func (t *TestRepository) Environment() repository.EnvironmentRepository {
  83. return t.environment
  84. }
  85. func (t *TestRepository) AuthCode() repository.AuthCodeRepository {
  86. return t.authCode
  87. }
  88. func (t *TestRepository) DNSRecord() repository.DNSRecordRepository {
  89. return t.dnsRecord
  90. }
  91. func (t *TestRepository) PWResetToken() repository.PWResetTokenRepository {
  92. return t.pwResetToken
  93. }
  94. func (t *TestRepository) Infra() repository.InfraRepository {
  95. return t.infra
  96. }
  97. func (t *TestRepository) KubeIntegration() repository.KubeIntegrationRepository {
  98. return t.kubeIntegration
  99. }
  100. func (t *TestRepository) BasicIntegration() repository.BasicIntegrationRepository {
  101. return t.basicIntegration
  102. }
  103. func (t *TestRepository) OIDCIntegration() repository.OIDCIntegrationRepository {
  104. return t.oidcIntegration
  105. }
  106. func (t *TestRepository) OAuthIntegration() repository.OAuthIntegrationRepository {
  107. return t.oauthIntegration
  108. }
  109. func (t *TestRepository) GCPIntegration() repository.GCPIntegrationRepository {
  110. return t.gcpIntegration
  111. }
  112. func (t *TestRepository) AWSIntegration() repository.AWSIntegrationRepository {
  113. return t.awsIntegration
  114. }
  115. func (t *TestRepository) AzureIntegration() repository.AzureIntegrationRepository {
  116. return t.azIntegration
  117. }
  118. func (t *TestRepository) GithubAppInstallation() repository.GithubAppInstallationRepository {
  119. return t.githubAppInstallation
  120. }
  121. func (t *TestRepository) GithubAppOAuthIntegration() repository.GithubAppOAuthIntegrationRepository {
  122. return t.githubAppOAuthIntegration
  123. }
  124. func (t *TestRepository) GitlabIntegration() repository.GitlabIntegrationRepository {
  125. return t.gitlabIntegration
  126. }
  127. func (t *TestRepository) GitlabAppOAuthIntegration() repository.GitlabAppOAuthIntegrationRepository {
  128. return t.gitlabAppOAuthIntegration
  129. }
  130. func (t *TestRepository) SlackIntegration() repository.SlackIntegrationRepository {
  131. return t.slackIntegration
  132. }
  133. func (t *TestRepository) NotificationConfig() repository.NotificationConfigRepository {
  134. return t.notificationConfig
  135. }
  136. func (t *TestRepository) JobNotificationConfig() repository.JobNotificationConfigRepository {
  137. return t.jobNotificationConfig
  138. }
  139. func (t *TestRepository) BuildEvent() repository.BuildEventRepository {
  140. return t.buildEvent
  141. }
  142. func (t *TestRepository) KubeEvent() repository.KubeEventRepository {
  143. return t.kubeEvent
  144. }
  145. func (t *TestRepository) ProjectUsage() repository.ProjectUsageRepository {
  146. return t.projectUsage
  147. }
  148. func (t *TestRepository) Onboarding() repository.ProjectOnboardingRepository {
  149. return t.onboarding
  150. }
  151. func (t *TestRepository) CredentialsExchangeToken() repository.CredentialsExchangeTokenRepository {
  152. return t.ceToken
  153. }
  154. func (t *TestRepository) BuildConfig() repository.BuildConfigRepository {
  155. return t.buildConfig
  156. }
  157. func (t *TestRepository) Database() repository.DatabaseRepository {
  158. return t.database
  159. }
  160. func (t *TestRepository) Allowlist() repository.AllowlistRepository {
  161. return t.allowlist
  162. }
  163. func (t *TestRepository) APIToken() repository.APITokenRepository {
  164. return t.apiToken
  165. }
  166. func (t *TestRepository) Policy() repository.PolicyRepository {
  167. return t.policy
  168. }
  169. func (t *TestRepository) Tag() repository.TagRepository {
  170. return t.tag
  171. }
  172. func (t *TestRepository) Stack() repository.StackRepository {
  173. return t.stack
  174. }
  175. func (t *TestRepository) MonitorTestResult() repository.MonitorTestResultRepository {
  176. return t.monitor
  177. }
  178. func (t *TestRepository) APIContractRevisioner() repository.APIContractRevisioner {
  179. return t.apiContractRevision
  180. }
  181. func (t *TestRepository) AWSAssumeRoleChainer() repository.AWSAssumeRoleChainer {
  182. return t.awsAssumeRoleChainer
  183. }
  184. func (t *TestRepository) PorterApp() repository.PorterAppRepository {
  185. return t.porterApp
  186. }
  187. // NewRepository returns a Repository which persists users in memory
  188. // and accepts a parameter that can trigger read/write errors
  189. func NewRepository(canQuery bool, failingMethods ...string) repository.Repository {
  190. return &TestRepository{
  191. user: NewUserRepository(canQuery, failingMethods...),
  192. session: NewSessionRepository(canQuery, failingMethods...),
  193. project: NewProjectRepository(canQuery, failingMethods...),
  194. cluster: NewClusterRepository(canQuery),
  195. helmRepo: NewHelmRepoRepository(canQuery),
  196. registry: NewRegistryRepository(canQuery),
  197. gitRepo: NewGitRepoRepository(canQuery),
  198. gitActionConfig: NewGitActionConfigRepository(canQuery),
  199. invite: NewInviteRepository(canQuery),
  200. release: NewReleaseRepository(canQuery),
  201. environment: NewEnvironmentRepository(),
  202. authCode: NewAuthCodeRepository(canQuery),
  203. dnsRecord: NewDNSRecordRepository(canQuery),
  204. pwResetToken: NewPWResetTokenRepository(canQuery),
  205. infra: NewInfraRepository(canQuery),
  206. kubeIntegration: NewKubeIntegrationRepository(canQuery),
  207. basicIntegration: NewBasicIntegrationRepository(canQuery),
  208. oidcIntegration: NewOIDCIntegrationRepository(canQuery),
  209. oauthIntegration: NewOAuthIntegrationRepository(canQuery),
  210. gcpIntegration: NewGCPIntegrationRepository(canQuery),
  211. awsIntegration: NewAWSIntegrationRepository(canQuery),
  212. azIntegration: NewAzureIntegrationRepository(),
  213. githubAppInstallation: NewGithubAppInstallationRepository(canQuery),
  214. githubAppOAuthIntegration: NewGithubAppOAuthIntegrationRepository(canQuery),
  215. gitlabIntegration: NewGitlabIntegrationRepository(canQuery),
  216. gitlabAppOAuthIntegration: NewGitlabAppOAuthIntegrationRepository(canQuery),
  217. slackIntegration: NewSlackIntegrationRepository(canQuery),
  218. notificationConfig: NewNotificationConfigRepository(canQuery),
  219. jobNotificationConfig: NewJobNotificationConfigRepository(canQuery),
  220. buildEvent: NewBuildEventRepository(canQuery),
  221. kubeEvent: NewKubeEventRepository(canQuery),
  222. projectUsage: NewProjectUsageRepository(canQuery),
  223. onboarding: NewProjectOnboardingRepository(canQuery),
  224. ceToken: NewCredentialsExchangeTokenRepository(canQuery),
  225. buildConfig: NewBuildConfigRepository(canQuery),
  226. database: NewDatabaseRepository(),
  227. allowlist: NewAllowlistRepository(canQuery),
  228. apiToken: NewAPITokenRepository(canQuery),
  229. policy: NewPolicyRepository(canQuery),
  230. tag: NewTagRepository(),
  231. stack: NewStackRepository(),
  232. monitor: NewMonitorTestResultRepository(canQuery),
  233. apiContractRevision: NewAPIContractRevisioner(),
  234. awsAssumeRoleChainer: NewAWSAssumeRoleChainer(),
  235. porterApp: NewPorterAppRepository(canQuery, failingMethods...),
  236. }
  237. }