openmeter / subscription /addon /http /handler.go
Leon4gr45's picture
Upload folder using huggingface_hub (part 6)
d6f631f verified
Raw
History Blame Contribute Delete
1.68 kB
package httpdriver
import (
"context"
"errors"
"log/slog"
"net/http"
"github.com/openmeterio/openmeter/openmeter/namespace/namespacedriver"
"github.com/openmeterio/openmeter/openmeter/productcatalog/addon"
"github.com/openmeterio/openmeter/openmeter/subscription"
subscriptionaddon "github.com/openmeterio/openmeter/openmeter/subscription/addon"
subscriptionworkflow "github.com/openmeterio/openmeter/openmeter/subscription/workflow"
"github.com/openmeterio/openmeter/pkg/framework/commonhttp"
"github.com/openmeterio/openmeter/pkg/framework/transport/httptransport"
)
type Handler interface {
CreateSubscriptionAddon() CreateSubscriptionAddonHandler
ListSubscriptionAddons() ListSubscriptionAddonsHandler
GetSubscriptionAddon() GetSubscriptionAddonHandler
UpdateSubscriptionAddon() UpdateSubscriptionAddonHandler
}
type HandlerConfig struct {
SubscriptionAddonService subscriptionaddon.Service
SubscriptionWorkflowService subscriptionworkflow.Service
SubscriptionService subscription.Service
AddonService addon.Service
NamespaceDecoder namespacedriver.NamespaceDecoder
Logger *slog.Logger
}
func NewHandler(config HandlerConfig, options ...httptransport.HandlerOption) Handler {
return &handler{
HandlerConfig: config,
Options: options,
}
}
type handler struct {
HandlerConfig
Options []httptransport.HandlerOption
}
func (h *handler) resolveNamespace(ctx context.Context) (string, error) {
ns, ok := h.NamespaceDecoder.GetNamespace(ctx)
if !ok {
return "", commonhttp.NewHTTPError(http.StatusInternalServerError, errors.New("internal server error"))
}
return ns, nil
}