You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
283 lines
13 KiB
283 lines
13 KiB
// Code generated by go-swagger; DO NOT EDIT.
|
|
|
|
package restapi
|
|
|
|
import (
|
|
"context"
|
|
"encoding/json"
|
|
"fmt"
|
|
"net/http"
|
|
|
|
"github.com/go-openapi/errors"
|
|
"github.com/go-openapi/loads"
|
|
"github.com/go-openapi/runtime"
|
|
"github.com/go-openapi/runtime/middleware"
|
|
"github.com/go-openapi/runtime/security"
|
|
|
|
"github.com/Cyclops-Labs/cyclops-4-hpc.git/services/billing/restapi/operations"
|
|
"github.com/Cyclops-Labs/cyclops-4-hpc.git/services/billing/restapi/operations/bulk_management"
|
|
"github.com/Cyclops-Labs/cyclops-4-hpc.git/services/billing/restapi/operations/invoice_management"
|
|
"github.com/Cyclops-Labs/cyclops-4-hpc.git/services/billing/restapi/operations/status_management"
|
|
"github.com/Cyclops-Labs/cyclops-4-hpc.git/services/billing/restapi/operations/trigger_management"
|
|
)
|
|
|
|
type contextKey string
|
|
|
|
const AuthKey contextKey = "Auth"
|
|
|
|
//go:generate mockery -name BulkManagementAPI -inpkg
|
|
|
|
/* BulkManagementAPI */
|
|
type BulkManagementAPI interface {
|
|
/* GetBillRun Get the status report of the billrun requested */
|
|
GetBillRun(ctx context.Context, params bulk_management.GetBillRunParams) middleware.Responder
|
|
|
|
/* ListBillRuns Show the status report of the billruns present in the system */
|
|
ListBillRuns(ctx context.Context, params bulk_management.ListBillRunsParams) middleware.Responder
|
|
|
|
/* ListBillRunsByOrganization Show the status report of the billruns present in the system */
|
|
ListBillRunsByOrganization(ctx context.Context, params bulk_management.ListBillRunsByOrganizationParams) middleware.Responder
|
|
|
|
/* ReRunAllBillRuns Try to re-run the failed invoices in all the billruns. */
|
|
ReRunAllBillRuns(ctx context.Context, params bulk_management.ReRunAllBillRunsParams) middleware.Responder
|
|
|
|
/* ReRunBillRun Try to re-run the failed invoices in the billrun. */
|
|
ReRunBillRun(ctx context.Context, params bulk_management.ReRunBillRunParams) middleware.Responder
|
|
}
|
|
|
|
//go:generate mockery -name InvoiceManagementAPI -inpkg
|
|
|
|
/* InvoiceManagementAPI */
|
|
type InvoiceManagementAPI interface {
|
|
/* GenerateInvoiceForCustomer Generate invoice for the provided customer for the provided time window or last period */
|
|
GenerateInvoiceForCustomer(ctx context.Context, params invoice_management.GenerateInvoiceForCustomerParams) middleware.Responder
|
|
|
|
/* GenerateInvoiceForReseller Generate invoice for the provided reseller for the provided time window or last period */
|
|
GenerateInvoiceForReseller(ctx context.Context, params invoice_management.GenerateInvoiceForResellerParams) middleware.Responder
|
|
|
|
/* GetInvoice Summary for this endpoint */
|
|
GetInvoice(ctx context.Context, params invoice_management.GetInvoiceParams) middleware.Responder
|
|
|
|
/* GetInvoicesByCustomer Retrieve invoices by customer id */
|
|
GetInvoicesByCustomer(ctx context.Context, params invoice_management.GetInvoicesByCustomerParams) middleware.Responder
|
|
|
|
/* GetInvoicesByReseller Retrieve invoices by reseller id */
|
|
GetInvoicesByReseller(ctx context.Context, params invoice_management.GetInvoicesByResellerParams) middleware.Responder
|
|
|
|
/* ListCustomerInvoices Retrieve customers' invoices */
|
|
ListCustomerInvoices(ctx context.Context, params invoice_management.ListCustomerInvoicesParams) middleware.Responder
|
|
|
|
/* ListInvoices Summary for this endpoint */
|
|
ListInvoices(ctx context.Context, params invoice_management.ListInvoicesParams) middleware.Responder
|
|
|
|
/* ListResellerInvoices Retrieve resellers' invoices */
|
|
ListResellerInvoices(ctx context.Context, params invoice_management.ListResellerInvoicesParams) middleware.Responder
|
|
}
|
|
|
|
//go:generate mockery -name StatusManagementAPI -inpkg
|
|
|
|
/* StatusManagementAPI */
|
|
type StatusManagementAPI interface {
|
|
/* GetStatus Basic status of the system */
|
|
GetStatus(ctx context.Context, params status_management.GetStatusParams) middleware.Responder
|
|
|
|
/* ShowStatus Basic status of the system */
|
|
ShowStatus(ctx context.Context, params status_management.ShowStatusParams) middleware.Responder
|
|
}
|
|
|
|
//go:generate mockery -name TriggerManagementAPI -inpkg
|
|
|
|
/* TriggerManagementAPI */
|
|
type TriggerManagementAPI interface {
|
|
/* PeriodicRun Periodic run of the bulk generation of invoices */
|
|
PeriodicRun(ctx context.Context, params trigger_management.PeriodicRunParams) middleware.Responder
|
|
}
|
|
|
|
// Config is configuration for Handler
|
|
type Config struct {
|
|
BulkManagementAPI
|
|
InvoiceManagementAPI
|
|
StatusManagementAPI
|
|
TriggerManagementAPI
|
|
Logger func(string, ...interface{})
|
|
// InnerMiddleware is for the handler executors. These do not apply to the swagger.json document.
|
|
// The middleware executes after routing but before authentication, binding and validation
|
|
InnerMiddleware func(http.Handler) http.Handler
|
|
|
|
// Authorizer is used to authorize a request after the Auth function was called using the "Auth*" functions
|
|
// and the principal was stored in the context in the "AuthKey" context value.
|
|
Authorizer func(*http.Request) error
|
|
|
|
// AuthAPIKeyHeader Applies when the "X-API-KEY" header is set
|
|
AuthAPIKeyHeader func(token string) (interface{}, error)
|
|
|
|
// AuthAPIKeyParam Applies when the "api_key" query is set
|
|
AuthAPIKeyParam func(token string) (interface{}, error)
|
|
|
|
// AuthKeycloak For OAuth2 authentication
|
|
AuthKeycloak func(token string, scopes []string) (interface{}, error)
|
|
// Authenticator to use for all APIKey authentication
|
|
APIKeyAuthenticator func(string, string, security.TokenAuthentication) runtime.Authenticator
|
|
// Authenticator to use for all Bearer authentication
|
|
BasicAuthenticator func(security.UserPassAuthentication) runtime.Authenticator
|
|
// Authenticator to use for all Basic authentication
|
|
BearerAuthenticator func(string, security.ScopedTokenAuthentication) runtime.Authenticator
|
|
}
|
|
|
|
// Handler returns an http.Handler given the handler configuration
|
|
// It mounts all the business logic implementers in the right routing.
|
|
func Handler(c Config) (http.Handler, error) {
|
|
h, _, err := HandlerAPI(c)
|
|
return h, err
|
|
}
|
|
|
|
// HandlerAPI returns an http.Handler given the handler configuration
|
|
// and the corresponding *BillingManagementAPI instance.
|
|
// It mounts all the business logic implementers in the right routing.
|
|
func HandlerAPI(c Config) (http.Handler, *operations.BillingManagementAPIAPI, error) {
|
|
spec, err := loads.Analyzed(swaggerCopy(SwaggerJSON), "")
|
|
if err != nil {
|
|
return nil, nil, fmt.Errorf("analyze swagger: %v", err)
|
|
}
|
|
api := operations.NewBillingManagementAPIAPI(spec)
|
|
api.ServeError = errors.ServeError
|
|
api.Logger = c.Logger
|
|
|
|
if c.APIKeyAuthenticator != nil {
|
|
api.APIKeyAuthenticator = c.APIKeyAuthenticator
|
|
}
|
|
if c.BasicAuthenticator != nil {
|
|
api.BasicAuthenticator = c.BasicAuthenticator
|
|
}
|
|
if c.BearerAuthenticator != nil {
|
|
api.BearerAuthenticator = c.BearerAuthenticator
|
|
}
|
|
|
|
api.JSONConsumer = runtime.JSONConsumer()
|
|
api.JSONProducer = runtime.JSONProducer()
|
|
api.APIKeyHeaderAuth = func(token string) (interface{}, error) {
|
|
if c.AuthAPIKeyHeader == nil {
|
|
return token, nil
|
|
}
|
|
return c.AuthAPIKeyHeader(token)
|
|
}
|
|
|
|
api.APIKeyParamAuth = func(token string) (interface{}, error) {
|
|
if c.AuthAPIKeyParam == nil {
|
|
return token, nil
|
|
}
|
|
return c.AuthAPIKeyParam(token)
|
|
}
|
|
|
|
api.KeycloakAuth = func(token string, scopes []string) (interface{}, error) {
|
|
if c.AuthKeycloak == nil {
|
|
return token, nil
|
|
}
|
|
return c.AuthKeycloak(token, scopes)
|
|
}
|
|
api.APIAuthorizer = authorizer(c.Authorizer)
|
|
api.InvoiceManagementGenerateInvoiceForCustomerHandler = invoice_management.GenerateInvoiceForCustomerHandlerFunc(func(params invoice_management.GenerateInvoiceForCustomerParams, principal interface{}) middleware.Responder {
|
|
ctx := params.HTTPRequest.Context()
|
|
ctx = storeAuth(ctx, principal)
|
|
return c.InvoiceManagementAPI.GenerateInvoiceForCustomer(ctx, params)
|
|
})
|
|
api.InvoiceManagementGenerateInvoiceForResellerHandler = invoice_management.GenerateInvoiceForResellerHandlerFunc(func(params invoice_management.GenerateInvoiceForResellerParams, principal interface{}) middleware.Responder {
|
|
ctx := params.HTTPRequest.Context()
|
|
ctx = storeAuth(ctx, principal)
|
|
return c.InvoiceManagementAPI.GenerateInvoiceForReseller(ctx, params)
|
|
})
|
|
api.BulkManagementGetBillRunHandler = bulk_management.GetBillRunHandlerFunc(func(params bulk_management.GetBillRunParams, principal interface{}) middleware.Responder {
|
|
ctx := params.HTTPRequest.Context()
|
|
ctx = storeAuth(ctx, principal)
|
|
return c.BulkManagementAPI.GetBillRun(ctx, params)
|
|
})
|
|
api.InvoiceManagementGetInvoiceHandler = invoice_management.GetInvoiceHandlerFunc(func(params invoice_management.GetInvoiceParams, principal interface{}) middleware.Responder {
|
|
ctx := params.HTTPRequest.Context()
|
|
ctx = storeAuth(ctx, principal)
|
|
return c.InvoiceManagementAPI.GetInvoice(ctx, params)
|
|
})
|
|
api.InvoiceManagementGetInvoicesByCustomerHandler = invoice_management.GetInvoicesByCustomerHandlerFunc(func(params invoice_management.GetInvoicesByCustomerParams, principal interface{}) middleware.Responder {
|
|
ctx := params.HTTPRequest.Context()
|
|
ctx = storeAuth(ctx, principal)
|
|
return c.InvoiceManagementAPI.GetInvoicesByCustomer(ctx, params)
|
|
})
|
|
api.InvoiceManagementGetInvoicesByResellerHandler = invoice_management.GetInvoicesByResellerHandlerFunc(func(params invoice_management.GetInvoicesByResellerParams, principal interface{}) middleware.Responder {
|
|
ctx := params.HTTPRequest.Context()
|
|
ctx = storeAuth(ctx, principal)
|
|
return c.InvoiceManagementAPI.GetInvoicesByReseller(ctx, params)
|
|
})
|
|
api.BulkManagementListBillRunsHandler = bulk_management.ListBillRunsHandlerFunc(func(params bulk_management.ListBillRunsParams, principal interface{}) middleware.Responder {
|
|
ctx := params.HTTPRequest.Context()
|
|
ctx = storeAuth(ctx, principal)
|
|
return c.BulkManagementAPI.ListBillRuns(ctx, params)
|
|
})
|
|
api.BulkManagementListBillRunsByOrganizationHandler = bulk_management.ListBillRunsByOrganizationHandlerFunc(func(params bulk_management.ListBillRunsByOrganizationParams, principal interface{}) middleware.Responder {
|
|
ctx := params.HTTPRequest.Context()
|
|
ctx = storeAuth(ctx, principal)
|
|
return c.BulkManagementAPI.ListBillRunsByOrganization(ctx, params)
|
|
})
|
|
api.InvoiceManagementListCustomerInvoicesHandler = invoice_management.ListCustomerInvoicesHandlerFunc(func(params invoice_management.ListCustomerInvoicesParams, principal interface{}) middleware.Responder {
|
|
ctx := params.HTTPRequest.Context()
|
|
ctx = storeAuth(ctx, principal)
|
|
return c.InvoiceManagementAPI.ListCustomerInvoices(ctx, params)
|
|
})
|
|
api.InvoiceManagementListInvoicesHandler = invoice_management.ListInvoicesHandlerFunc(func(params invoice_management.ListInvoicesParams, principal interface{}) middleware.Responder {
|
|
ctx := params.HTTPRequest.Context()
|
|
ctx = storeAuth(ctx, principal)
|
|
return c.InvoiceManagementAPI.ListInvoices(ctx, params)
|
|
})
|
|
api.InvoiceManagementListResellerInvoicesHandler = invoice_management.ListResellerInvoicesHandlerFunc(func(params invoice_management.ListResellerInvoicesParams, principal interface{}) middleware.Responder {
|
|
ctx := params.HTTPRequest.Context()
|
|
ctx = storeAuth(ctx, principal)
|
|
return c.InvoiceManagementAPI.ListResellerInvoices(ctx, params)
|
|
})
|
|
api.BulkManagementReRunAllBillRunsHandler = bulk_management.ReRunAllBillRunsHandlerFunc(func(params bulk_management.ReRunAllBillRunsParams, principal interface{}) middleware.Responder {
|
|
ctx := params.HTTPRequest.Context()
|
|
ctx = storeAuth(ctx, principal)
|
|
return c.BulkManagementAPI.ReRunAllBillRuns(ctx, params)
|
|
})
|
|
api.BulkManagementReRunBillRunHandler = bulk_management.ReRunBillRunHandlerFunc(func(params bulk_management.ReRunBillRunParams, principal interface{}) middleware.Responder {
|
|
ctx := params.HTTPRequest.Context()
|
|
ctx = storeAuth(ctx, principal)
|
|
return c.BulkManagementAPI.ReRunBillRun(ctx, params)
|
|
})
|
|
api.StatusManagementGetStatusHandler = status_management.GetStatusHandlerFunc(func(params status_management.GetStatusParams, principal interface{}) middleware.Responder {
|
|
ctx := params.HTTPRequest.Context()
|
|
ctx = storeAuth(ctx, principal)
|
|
return c.StatusManagementAPI.GetStatus(ctx, params)
|
|
})
|
|
api.TriggerManagementPeriodicRunHandler = trigger_management.PeriodicRunHandlerFunc(func(params trigger_management.PeriodicRunParams, principal interface{}) middleware.Responder {
|
|
ctx := params.HTTPRequest.Context()
|
|
ctx = storeAuth(ctx, principal)
|
|
return c.TriggerManagementAPI.PeriodicRun(ctx, params)
|
|
})
|
|
api.StatusManagementShowStatusHandler = status_management.ShowStatusHandlerFunc(func(params status_management.ShowStatusParams, principal interface{}) middleware.Responder {
|
|
ctx := params.HTTPRequest.Context()
|
|
ctx = storeAuth(ctx, principal)
|
|
return c.StatusManagementAPI.ShowStatus(ctx, params)
|
|
})
|
|
api.ServerShutdown = func() {}
|
|
return api.Serve(c.InnerMiddleware), api, nil
|
|
}
|
|
|
|
// swaggerCopy copies the swagger json to prevent data races in runtime
|
|
func swaggerCopy(orig json.RawMessage) json.RawMessage {
|
|
c := make(json.RawMessage, len(orig))
|
|
copy(c, orig)
|
|
return c
|
|
}
|
|
|
|
// authorizer is a helper function to implement the runtime.Authorizer interface.
|
|
type authorizer func(*http.Request) error
|
|
|
|
func (a authorizer) Authorize(req *http.Request, principal interface{}) error {
|
|
if a == nil {
|
|
return nil
|
|
}
|
|
ctx := storeAuth(req.Context(), principal)
|
|
return a(req.WithContext(ctx))
|
|
}
|
|
|
|
func storeAuth(ctx context.Context, principal interface{}) context.Context {
|
|
return context.WithValue(ctx, AuthKey, principal)
|
|
}
|
|
|