Leon4gr45's picture
Upload folder using huggingface_hub (part 6)
d6f631f verified
Raw
History Blame Contribute Delete
2.55 kB
package subscription
import (
"errors"
"fmt"
"time"
"github.com/openmeterio/openmeter/pkg/filter"
"github.com/openmeterio/openmeter/pkg/models"
"github.com/openmeterio/openmeter/pkg/pagination"
"github.com/openmeterio/openmeter/pkg/sortx"
"github.com/openmeterio/openmeter/pkg/timeutil"
)
type OrderBy string
const (
OrderByID OrderBy = "id"
OrderByActiveFrom OrderBy = "activeFrom"
OrderByActiveTo OrderBy = "activeTo"
)
func (o OrderBy) Validate() error {
switch o {
case OrderByID, OrderByActiveFrom, OrderByActiveTo:
return nil
}
return fmt.Errorf("invalid order by: %s", o)
}
type ListSubscriptionsInput struct {
pagination.Page
OrderBy OrderBy
Order sortx.Order
Namespaces []string
CustomerID *filter.FilterULID
ActiveAt *time.Time
ActiveInPeriod *timeutil.StartBoundedPeriod
Status []SubscriptionStatus
IncludeDeleted bool
ID *filter.FilterULID
PlanID *filter.FilterULID
PlanKey *filter.FilterString
DeletedAt *filter.FilterTime
}
func (i ListSubscriptionsInput) Validate() error {
var errs []error
if i.ActiveInPeriod != nil {
if err := i.ActiveInPeriod.Validate(); err != nil {
errs = append(errs, fmt.Errorf("active in period: %w", err))
}
}
if i.OrderBy != "" {
if err := i.OrderBy.Validate(); err != nil {
errs = append(errs, fmt.Errorf("order by: %w", err))
}
}
if !i.Page.IsZero() {
if err := i.Page.Validate(); err != nil {
errs = append(errs, fmt.Errorf("page: %w", err))
}
}
if i.ID != nil {
if err := i.ID.Validate(); err != nil {
errs = append(errs, models.NewGenericValidationError(fmt.Errorf("invalid id filter: %w", err)))
}
}
if i.CustomerID != nil {
if err := i.CustomerID.Validate(); err != nil {
errs = append(errs, models.NewGenericValidationError(fmt.Errorf("invalid customer_id filter: %w", err)))
}
}
if i.PlanID != nil {
if err := i.PlanID.Validate(); err != nil {
errs = append(errs, models.NewGenericValidationError(fmt.Errorf("invalid plan_id filter: %w", err)))
}
}
if i.PlanKey != nil {
if err := i.PlanKey.Validate(); err != nil {
errs = append(errs, models.NewGenericValidationError(fmt.Errorf("invalid plan_key filter: %w", err)))
}
}
if i.DeletedAt != nil {
if err := i.DeletedAt.Validate(); err != nil {
errs = append(errs, models.NewGenericValidationError(fmt.Errorf("invalid deleted_at filter: %w", err)))
}
}
return models.NewNillableGenericValidationError(errors.Join(errs...))
}
type SubscriptionList = pagination.Result[Subscription]