| package entitlementdriverv2 |
|
|
| import ( |
| "github.com/openmeterio/openmeter/openmeter/customer" |
| "github.com/openmeterio/openmeter/openmeter/entitlement" |
| meteredentitlement "github.com/openmeterio/openmeter/openmeter/entitlement/metered" |
| "github.com/openmeterio/openmeter/openmeter/namespace/namespacedriver" |
| "github.com/openmeterio/openmeter/pkg/framework/transport/httptransport" |
| ) |
|
|
| |
| type EntitlementHandler interface { |
| CreateCustomerEntitlement() CreateCustomerEntitlementHandler |
| ListCustomerEntitlements() ListCustomerEntitlementsHandler |
| GetCustomerEntitlement() GetCustomerEntitlementHandler |
| DeleteCustomerEntitlement() DeleteCustomerEntitlementHandler |
| OverrideCustomerEntitlement() OverrideCustomerEntitlementHandler |
| ListCustomerEntitlementGrants() ListCustomerEntitlementGrantsHandler |
| CreateCustomerEntitlementGrant() CreateCustomerEntitlementGrantHandler |
| GetCustomerEntitlementHistory() GetCustomerEntitlementHistoryHandler |
| ResetCustomerEntitlementUsage() ResetCustomerEntitlementUsageHandler |
| ListEntitlements() ListEntitlementsHandler |
| GetEntitlement() GetEntitlementHandler |
| } |
|
|
| type entitlementHandler struct { |
| namespaceDecoder namespacedriver.NamespaceDecoder |
| options []httptransport.HandlerOption |
| connector entitlement.Service |
| balanceConnector meteredentitlement.Connector |
| customerService customer.Service |
| } |
|
|
| func NewEntitlementHandler( |
| connector entitlement.Service, |
| balanceConnector meteredentitlement.Connector, |
| customerService customer.Service, |
| namespaceDecoder namespacedriver.NamespaceDecoder, |
| options ...httptransport.HandlerOption, |
| ) EntitlementHandler { |
| return &entitlementHandler{ |
| namespaceDecoder: namespaceDecoder, |
| options: options, |
| connector: connector, |
| balanceConnector: balanceConnector, |
| customerService: customerService, |
| } |
| } |
|
|