Leon4gr45's picture
Upload folder using huggingface_hub (part 6)
d6f631f verified
Raw
History Blame Contribute Delete
2.16 kB
package httpdriver
import (
"context"
"fmt"
"net/http"
"github.com/openmeterio/openmeter/api"
subscriptionaddon "github.com/openmeterio/openmeter/openmeter/subscription/addon"
"github.com/openmeterio/openmeter/pkg/framework/commonhttp"
"github.com/openmeterio/openmeter/pkg/framework/transport/httptransport"
"github.com/openmeterio/openmeter/pkg/models"
)
type (
GetSubscriptionAddonParams = struct {
SubscriptionID string
SubscriptionAddonID string
}
GetSubscriptionAddonRequest = struct {
SubscriptionID models.NamespacedID
SubscriptionAddonID models.NamespacedID
}
GetSubscriptionAddonResponse = api.SubscriptionAddon
GetSubscriptionAddonHandler = httptransport.HandlerWithArgs[GetSubscriptionAddonRequest, GetSubscriptionAddonResponse, GetSubscriptionAddonParams]
)
func (h *handler) GetSubscriptionAddon() GetSubscriptionAddonHandler {
return httptransport.NewHandlerWithArgs(
func(ctx context.Context, r *http.Request, params GetSubscriptionAddonParams) (GetSubscriptionAddonRequest, error) {
ns, err := h.resolveNamespace(ctx)
if err != nil {
return GetSubscriptionAddonRequest{}, fmt.Errorf("failed to resolve namespace: %w", err)
}
return GetSubscriptionAddonRequest{
SubscriptionID: models.NamespacedID{Namespace: ns, ID: params.SubscriptionID},
SubscriptionAddonID: models.NamespacedID{Namespace: ns, ID: params.SubscriptionAddonID},
}, nil
},
func(ctx context.Context, req GetSubscriptionAddonRequest) (GetSubscriptionAddonResponse, error) {
res, err := h.SubscriptionAddonService.Get(ctx, subscriptionaddon.GetSubscriptionAddonInput{
NamespacedID: req.SubscriptionAddonID,
})
if err != nil {
return GetSubscriptionAddonResponse{}, err
}
view, err := h.SubscriptionService.GetView(ctx, req.SubscriptionID)
if err != nil {
return GetSubscriptionAddonResponse{}, err
}
return MapSubscriptionAddonToResponse(view, *res)
},
commonhttp.JSONResponseEncoderWithStatus[GetSubscriptionAddonResponse](http.StatusOK),
httptransport.AppendOptions(
h.Options,
httptransport.WithOperationName("getSubscriptionAddon"),
)...,
)
}