package subscriptions import ( "context" "github.com/openmeterio/openmeter/openmeter/customer" "github.com/openmeterio/openmeter/openmeter/productcatalog/plan" plansubscription "github.com/openmeterio/openmeter/openmeter/productcatalog/subscription" "github.com/openmeterio/openmeter/openmeter/subscription" "github.com/openmeterio/openmeter/pkg/framework/transport/httptransport" ) type Handler interface { ListSubscriptions() ListSubscriptionsHandler GetSubscription() GetSubscriptionHandler CreateSubscription() CreateSubscriptionHandler CancelSubscription() CancelSubscriptionHandler UnscheduleCancelation() UnscheduleCancelationHandler ChangeSubscription() ChangeSubscriptionHandler } type handler struct { resolveNamespace func(ctx context.Context) (string, error) customerService customer.Service planService plan.Service planSubscriptionService plansubscription.PlanSubscriptionService subscriptionService subscription.Service options []httptransport.HandlerOption } func New( resolveNamespace func(ctx context.Context) (string, error), customerService customer.Service, planService plan.Service, planSubscriptionService plansubscription.PlanSubscriptionService, subscriptionService subscription.Service, options ...httptransport.HandlerOption, ) Handler { return &handler{ resolveNamespace: resolveNamespace, customerService: customerService, planService: planService, planSubscriptionService: planSubscriptionService, subscriptionService: subscriptionService, options: options, } }