2
0

limit.go 733 B

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