openmeter / customer /httpdriver /handler.go
Leon4gr45's picture
Upload folder using huggingface_hub (part 3)
1c4c66b verified
Raw
History Blame Contribute Delete
1.94 kB
package httpdriver
import (
"context"
"errors"
"net/http"
"github.com/openmeterio/openmeter/openmeter/customer"
"github.com/openmeterio/openmeter/openmeter/entitlement"
"github.com/openmeterio/openmeter/openmeter/namespace/namespacedriver"
"github.com/openmeterio/openmeter/openmeter/subscription"
"github.com/openmeterio/openmeter/pkg/framework/commonhttp"
"github.com/openmeterio/openmeter/pkg/framework/transport/httptransport"
)
type Handler interface {
CustomerHandler
}
type CustomerHandler interface {
ListCustomers() ListCustomersHandler
CreateCustomer() CreateCustomerHandler
DeleteCustomer() DeleteCustomerHandler
GetCustomer() GetCustomerHandler
UpdateCustomer() UpdateCustomerHandler
GetCustomerEntitlementValue() GetCustomerEntitlementValueHandler
GetCustomerEntitlementValueV2() GetCustomerEntitlementValueV2Handler
GetCustomerAccess() GetCustomerAccessHandler
GetCustomerAccessV2() GetCustomerAccessV2Handler
}
var _ Handler = (*handler)(nil)
type handler struct {
service customer.Service
entitlementService entitlement.Service
subscriptionService subscription.Service
namespaceDecoder namespacedriver.NamespaceDecoder
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
}
func New(
namespaceDecoder namespacedriver.NamespaceDecoder,
service customer.Service,
subscriptionService subscription.Service,
entitlementService entitlement.Service,
options ...httptransport.HandlerOption,
) Handler {
return &handler{
service: service,
subscriptionService: subscriptionService,
namespaceDecoder: namespaceDecoder,
entitlementService: entitlementService,
options: options,
}
}