Leon4gr45's picture
Upload folder using huggingface_hub (part 6)
d6f631f verified
Raw
History Blame Contribute Delete
2.19 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"
"github.com/openmeterio/openmeter/pkg/slicesx"
)
type (
ListSubscriptionAddonsParams = struct {
SubscriptionID string
}
ListSubscriptionAddonsRequest = struct {
SubscriptionID models.NamespacedID
}
ListSubscriptionAddonsResponse = []api.SubscriptionAddon
ListSubscriptionAddonsHandler = httptransport.HandlerWithArgs[ListSubscriptionAddonsRequest, ListSubscriptionAddonsResponse, ListSubscriptionAddonsParams]
)
func (h *handler) ListSubscriptionAddons() ListSubscriptionAddonsHandler {
return httptransport.NewHandlerWithArgs(
func(ctx context.Context, r *http.Request, params ListSubscriptionAddonsParams) (ListSubscriptionAddonsRequest, error) {
ns, err := h.resolveNamespace(ctx)
if err != nil {
return ListSubscriptionAddonsRequest{}, fmt.Errorf("failed to resolve namespace: %w", err)
}
return ListSubscriptionAddonsRequest{
SubscriptionID: models.NamespacedID{
Namespace: ns,
ID: params.SubscriptionID,
},
}, nil
},
func(ctx context.Context, req ListSubscriptionAddonsRequest) (ListSubscriptionAddonsResponse, error) {
res, err := h.SubscriptionAddonService.List(ctx, req.SubscriptionID.Namespace, subscriptionaddon.ListSubscriptionAddonsInput{
SubscriptionID: req.SubscriptionID.ID,
})
if err != nil {
return nil, err
}
view, err := h.SubscriptionService.GetView(ctx, req.SubscriptionID)
if err != nil {
return nil, err
}
return slicesx.MapWithErr(res.Items, func(item subscriptionaddon.SubscriptionAddon) (api.SubscriptionAddon, error) {
return MapSubscriptionAddonToResponse(view, item)
})
},
commonhttp.JSONResponseEncoderWithStatus[ListSubscriptionAddonsResponse](http.StatusOK),
httptransport.AppendOptions(
h.Options,
httptransport.WithOperationName("listSubscriptionAddons"),
)...,
)
}