repository.go 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364
  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. upstashIntegration repository.UpstashIntegrationRepository
  34. neonIntegration repository.NeonIntegrationRepository
  35. appEventWebhook repository.AppEventWebhookRepository
  36. notificationConfig repository.NotificationConfigRepository
  37. jobNotificationConfig repository.JobNotificationConfigRepository
  38. buildEvent repository.BuildEventRepository
  39. kubeEvent repository.KubeEventRepository
  40. projectUsage repository.ProjectUsageRepository
  41. onboarding repository.ProjectOnboardingRepository
  42. ceToken repository.CredentialsExchangeTokenRepository
  43. buildConfig repository.BuildConfigRepository
  44. database repository.DatabaseRepository
  45. allowlist repository.AllowlistRepository
  46. apiToken repository.APITokenRepository
  47. policy repository.PolicyRepository
  48. tag repository.TagRepository
  49. stack repository.StackRepository
  50. monitor repository.MonitorTestResultRepository
  51. apiContractRevision repository.APIContractRevisioner
  52. awsAssumeRoleChainer repository.AWSAssumeRoleChainer
  53. porterApp repository.PorterAppRepository
  54. porterAppEvent repository.PorterAppEventRepository
  55. systemServiceStatus repository.SystemServiceStatusRepository
  56. deploymentTarget repository.DeploymentTargetRepository
  57. appRevision repository.AppRevisionRepository
  58. appTemplate repository.AppTemplateRepository
  59. githubWebhook repository.GithubWebhookRepository
  60. datastore repository.DatastoreRepository
  61. appInstance repository.AppInstanceRepository
  62. referral repository.ReferralRepository
  63. }
  64. func (t *TestRepository) User() repository.UserRepository {
  65. return t.user
  66. }
  67. func (t *TestRepository) Session() repository.SessionRepository {
  68. return t.session
  69. }
  70. func (t *TestRepository) Project() repository.ProjectRepository {
  71. return t.project
  72. }
  73. func (t *TestRepository) Cluster() repository.ClusterRepository {
  74. return t.cluster
  75. }
  76. func (t *TestRepository) HelmRepo() repository.HelmRepoRepository {
  77. return t.helmRepo
  78. }
  79. func (t *TestRepository) Registry() repository.RegistryRepository {
  80. return t.registry
  81. }
  82. func (t *TestRepository) GitRepo() repository.GitRepoRepository {
  83. return t.gitRepo
  84. }
  85. func (t *TestRepository) GitActionConfig() repository.GitActionConfigRepository {
  86. return t.gitActionConfig
  87. }
  88. func (t *TestRepository) Invite() repository.InviteRepository {
  89. return t.invite
  90. }
  91. func (t *TestRepository) Release() repository.ReleaseRepository {
  92. return t.release
  93. }
  94. func (t *TestRepository) Environment() repository.EnvironmentRepository {
  95. return t.environment
  96. }
  97. func (t *TestRepository) AuthCode() repository.AuthCodeRepository {
  98. return t.authCode
  99. }
  100. func (t *TestRepository) DNSRecord() repository.DNSRecordRepository {
  101. return t.dnsRecord
  102. }
  103. func (t *TestRepository) PWResetToken() repository.PWResetTokenRepository {
  104. return t.pwResetToken
  105. }
  106. func (t *TestRepository) Infra() repository.InfraRepository {
  107. return t.infra
  108. }
  109. func (t *TestRepository) KubeIntegration() repository.KubeIntegrationRepository {
  110. return t.kubeIntegration
  111. }
  112. func (t *TestRepository) BasicIntegration() repository.BasicIntegrationRepository {
  113. return t.basicIntegration
  114. }
  115. func (t *TestRepository) OIDCIntegration() repository.OIDCIntegrationRepository {
  116. return t.oidcIntegration
  117. }
  118. func (t *TestRepository) OAuthIntegration() repository.OAuthIntegrationRepository {
  119. return t.oauthIntegration
  120. }
  121. func (t *TestRepository) GCPIntegration() repository.GCPIntegrationRepository {
  122. return t.gcpIntegration
  123. }
  124. func (t *TestRepository) AWSIntegration() repository.AWSIntegrationRepository {
  125. return t.awsIntegration
  126. }
  127. func (t *TestRepository) AzureIntegration() repository.AzureIntegrationRepository {
  128. return t.azIntegration
  129. }
  130. func (t *TestRepository) GithubAppInstallation() repository.GithubAppInstallationRepository {
  131. return t.githubAppInstallation
  132. }
  133. func (t *TestRepository) GithubAppOAuthIntegration() repository.GithubAppOAuthIntegrationRepository {
  134. return t.githubAppOAuthIntegration
  135. }
  136. func (t *TestRepository) GitlabIntegration() repository.GitlabIntegrationRepository {
  137. return t.gitlabIntegration
  138. }
  139. func (t *TestRepository) GitlabAppOAuthIntegration() repository.GitlabAppOAuthIntegrationRepository {
  140. return t.gitlabAppOAuthIntegration
  141. }
  142. func (t *TestRepository) SlackIntegration() repository.SlackIntegrationRepository {
  143. return t.slackIntegration
  144. }
  145. func (t *TestRepository) UpstashIntegration() repository.UpstashIntegrationRepository {
  146. return t.upstashIntegration
  147. }
  148. func (t *TestRepository) NeonIntegration() repository.NeonIntegrationRepository {
  149. return t.neonIntegration
  150. }
  151. func (t *TestRepository) AppEventWebhook() repository.AppEventWebhookRepository {
  152. return t.appEventWebhook
  153. }
  154. func (t *TestRepository) NotificationConfig() repository.NotificationConfigRepository {
  155. return t.notificationConfig
  156. }
  157. func (t *TestRepository) JobNotificationConfig() repository.JobNotificationConfigRepository {
  158. return t.jobNotificationConfig
  159. }
  160. func (t *TestRepository) BuildEvent() repository.BuildEventRepository {
  161. return t.buildEvent
  162. }
  163. func (t *TestRepository) KubeEvent() repository.KubeEventRepository {
  164. return t.kubeEvent
  165. }
  166. func (t *TestRepository) ProjectUsage() repository.ProjectUsageRepository {
  167. return t.projectUsage
  168. }
  169. func (t *TestRepository) Onboarding() repository.ProjectOnboardingRepository {
  170. return t.onboarding
  171. }
  172. func (t *TestRepository) CredentialsExchangeToken() repository.CredentialsExchangeTokenRepository {
  173. return t.ceToken
  174. }
  175. func (t *TestRepository) BuildConfig() repository.BuildConfigRepository {
  176. return t.buildConfig
  177. }
  178. func (t *TestRepository) Database() repository.DatabaseRepository {
  179. return t.database
  180. }
  181. func (t *TestRepository) Allowlist() repository.AllowlistRepository {
  182. return t.allowlist
  183. }
  184. func (t *TestRepository) APIToken() repository.APITokenRepository {
  185. return t.apiToken
  186. }
  187. func (t *TestRepository) Policy() repository.PolicyRepository {
  188. return t.policy
  189. }
  190. func (t *TestRepository) Tag() repository.TagRepository {
  191. return t.tag
  192. }
  193. func (t *TestRepository) Stack() repository.StackRepository {
  194. return t.stack
  195. }
  196. func (t *TestRepository) MonitorTestResult() repository.MonitorTestResultRepository {
  197. return t.monitor
  198. }
  199. func (t *TestRepository) APIContractRevisioner() repository.APIContractRevisioner {
  200. return t.apiContractRevision
  201. }
  202. func (t *TestRepository) AWSAssumeRoleChainer() repository.AWSAssumeRoleChainer {
  203. return t.awsAssumeRoleChainer
  204. }
  205. func (t *TestRepository) PorterApp() repository.PorterAppRepository {
  206. return t.porterApp
  207. }
  208. func (t *TestRepository) PorterAppEvent() repository.PorterAppEventRepository {
  209. return t.porterAppEvent
  210. }
  211. func (t *TestRepository) SystemServiceStatus() repository.SystemServiceStatusRepository {
  212. return t.systemServiceStatus
  213. }
  214. // DeploymentTarget returns a test DeploymentTargetRepository
  215. func (t *TestRepository) DeploymentTarget() repository.DeploymentTargetRepository {
  216. return t.deploymentTarget
  217. }
  218. // AppRevision returns a test AppRevisionRepository
  219. func (t *TestRepository) AppRevision() repository.AppRevisionRepository {
  220. return t.appRevision
  221. }
  222. // AppTemplate returns a test AppTemplateRepository
  223. func (t *TestRepository) AppTemplate() repository.AppTemplateRepository {
  224. return t.appTemplate
  225. }
  226. // GithubWebhook returns a test GithubWebhookRepository
  227. func (t *TestRepository) GithubWebhook() repository.GithubWebhookRepository {
  228. return t.githubWebhook
  229. }
  230. // Datastore returns a test DatastoreRepository
  231. func (t *TestRepository) Datastore() repository.DatastoreRepository {
  232. return t.datastore
  233. }
  234. // AppInstance returns a test AppInstanceRepository
  235. func (t *TestRepository) AppInstance() repository.AppInstanceRepository {
  236. return t.appInstance
  237. }
  238. // Referral returns a test Referral
  239. func (t *TestRepository) Referral() repository.ReferralRepository {
  240. return t.referral
  241. }
  242. // NewRepository returns a Repository which persists users in memory
  243. // and accepts a parameter that can trigger read/write errors
  244. func NewRepository(canQuery bool, failingMethods ...string) repository.Repository {
  245. return &TestRepository{
  246. user: NewUserRepository(canQuery, failingMethods...),
  247. session: NewSessionRepository(canQuery, failingMethods...),
  248. project: NewProjectRepository(canQuery, failingMethods...),
  249. cluster: NewClusterRepository(canQuery),
  250. helmRepo: NewHelmRepoRepository(canQuery),
  251. registry: NewRegistryRepository(canQuery),
  252. gitRepo: NewGitRepoRepository(canQuery),
  253. gitActionConfig: NewGitActionConfigRepository(canQuery),
  254. invite: NewInviteRepository(canQuery),
  255. release: NewReleaseRepository(canQuery),
  256. environment: NewEnvironmentRepository(),
  257. authCode: NewAuthCodeRepository(canQuery),
  258. dnsRecord: NewDNSRecordRepository(canQuery),
  259. pwResetToken: NewPWResetTokenRepository(canQuery),
  260. infra: NewInfraRepository(canQuery),
  261. kubeIntegration: NewKubeIntegrationRepository(canQuery),
  262. basicIntegration: NewBasicIntegrationRepository(canQuery),
  263. oidcIntegration: NewOIDCIntegrationRepository(canQuery),
  264. oauthIntegration: NewOAuthIntegrationRepository(canQuery),
  265. gcpIntegration: NewGCPIntegrationRepository(canQuery),
  266. awsIntegration: NewAWSIntegrationRepository(canQuery),
  267. azIntegration: NewAzureIntegrationRepository(),
  268. githubAppInstallation: NewGithubAppInstallationRepository(canQuery),
  269. githubAppOAuthIntegration: NewGithubAppOAuthIntegrationRepository(canQuery),
  270. gitlabIntegration: NewGitlabIntegrationRepository(canQuery),
  271. gitlabAppOAuthIntegration: NewGitlabAppOAuthIntegrationRepository(canQuery),
  272. slackIntegration: NewSlackIntegrationRepository(canQuery),
  273. upstashIntegration: NewUpstashIntegrationRepository(canQuery),
  274. neonIntegration: NewNeonIntegrationRepository(canQuery),
  275. appEventWebhook: NewAppEventWebhookRepository(canQuery),
  276. notificationConfig: NewNotificationConfigRepository(canQuery),
  277. jobNotificationConfig: NewJobNotificationConfigRepository(canQuery),
  278. buildEvent: NewBuildEventRepository(canQuery),
  279. kubeEvent: NewKubeEventRepository(canQuery),
  280. projectUsage: NewProjectUsageRepository(canQuery),
  281. onboarding: NewProjectOnboardingRepository(canQuery),
  282. ceToken: NewCredentialsExchangeTokenRepository(canQuery),
  283. buildConfig: NewBuildConfigRepository(canQuery),
  284. database: NewDatabaseRepository(),
  285. allowlist: NewAllowlistRepository(canQuery),
  286. apiToken: NewAPITokenRepository(canQuery),
  287. policy: NewPolicyRepository(canQuery),
  288. tag: NewTagRepository(),
  289. stack: NewStackRepository(),
  290. monitor: NewMonitorTestResultRepository(canQuery),
  291. apiContractRevision: NewAPIContractRevisioner(),
  292. awsAssumeRoleChainer: NewAWSAssumeRoleChainer(),
  293. porterApp: NewPorterAppRepository(canQuery, failingMethods...),
  294. porterAppEvent: NewPorterAppEventRepository(canQuery),
  295. systemServiceStatus: NewSystemServiceStatusRepository(canQuery),
  296. deploymentTarget: NewDeploymentTargetRepository(),
  297. appRevision: NewAppRevisionRepository(),
  298. appTemplate: NewAppTemplateRepository(),
  299. githubWebhook: NewGithubWebhookRepository(),
  300. datastore: NewDatastoreRepository(),
  301. appInstance: NewAppInstanceRepository(),
  302. referral: NewReferralRepository(),
  303. }
  304. }