2
0

limit.go 747 B

123456789101112131415161718192021222324252627282930
  1. //go:build ee
  2. // +build ee
  3. package usage
  4. import (
  5. "errors"
  6. "github.com/porter-dev/porter/api/types"
  7. "github.com/porter-dev/porter/internal/models"
  8. "github.com/porter-dev/porter/internal/repository"
  9. "gorm.io/gorm"
  10. )
  11. func GetLimit(repo repository.Repository, proj *models.Project) (limit *types.ProjectUsage, err error) {
  12. // query for the project limit; if not found, no limits
  13. limitModel, err := repo.ProjectUsage().ReadProjectUsage(proj.ID)
  14. if err != nil && errors.Is(err, gorm.ErrRecordNotFound) {
  15. // place existing users without usage on enterprise plan
  16. copyBasic := types.EnterprisePlan
  17. limit = &copyBasic
  18. } else if err != nil {
  19. return nil, err
  20. } else {
  21. limit = limitModel.ToProjectUsageType()
  22. }
  23. return limit, nil
  24. }