build_config.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package gorm
  2. import (
  3. "github.com/porter-dev/porter/internal/models"
  4. "github.com/porter-dev/porter/internal/repository"
  5. "gorm.io/gorm"
  6. )
  7. // BuildConfigRepository uses gorm.DB for querying the database
  8. type BuildConfigRepository struct {
  9. db *gorm.DB
  10. }
  11. // NewBuildConfigRepository returns a BuildConfigRepository which uses
  12. // gorm.DB for querying the database. It accepts an encryption key to encrypt
  13. // sensitive data
  14. func NewBuildConfigRepository(db *gorm.DB) repository.BuildConfigRepository {
  15. return &BuildConfigRepository{db}
  16. }
  17. // CreateBuildConfig creates a new build config for a release
  18. func (repo *BuildConfigRepository) CreateBuildConfig(bc *models.BuildConfig) (*models.BuildConfig, error) {
  19. if err := repo.db.Create(bc).Error; err != nil {
  20. return nil, err
  21. }
  22. return bc, nil
  23. }
  24. // UpdateBuildConfig updates a build config
  25. func (repo *BuildConfigRepository) UpdateBuildConfig(bc *models.BuildConfig) (*models.BuildConfig, error) {
  26. if err := repo.db.Save(bc).Error; err != nil {
  27. return nil, err
  28. }
  29. return bc, nil
  30. }
  31. // GetBuildConfig returns a BuildConfig with the specified id
  32. func (repo *BuildConfigRepository) GetBuildConfig(id uint) (*models.BuildConfig, error) {
  33. bc := &models.BuildConfig{}
  34. if err := repo.db.First(bc, id).Error; err != nil {
  35. return nil, err
  36. }
  37. return bc, nil
  38. }