limit.go 683 B

12345678910111213141516171819202122232425262728
  1. // +build ee
  2. package usage
  3. import (
  4. "errors"
  5. "github.com/porter-dev/porter/api/server/shared/config"
  6. "github.com/porter-dev/porter/api/types"
  7. "github.com/porter-dev/porter/internal/models"
  8. "gorm.io/gorm"
  9. )
  10. func GetLimit(config *config.Config, proj *models.Project) (limit *types.ProjectUsage, err error) {
  11. // query for the project limit; if not found, default to basic
  12. limitModel, err := config.Repo.ProjectUsage().ReadProjectUsage(proj.ID)
  13. if err != nil && errors.Is(err, gorm.ErrRecordNotFound) {
  14. copyBasic := types.BasicPlan
  15. limit = &copyBasic
  16. } else if err != nil {
  17. return nil, err
  18. } else {
  19. limit = limitModel.ToProjectUsageType()
  20. }
  21. return limit, nil
  22. }