supabase-cli/internal/sso/get/get.go

47 lines
1.1 KiB
Go

package get
import (
"context"
"fmt"
"net/http"
"os"
"github.com/go-errors/errors"
"github.com/supabase/cli/internal/sso/internal/render"
"github.com/supabase/cli/internal/utils"
"github.com/supabase/cli/pkg/api"
)
func Run(ctx context.Context, ref, providerId, format string) error {
resp, err := utils.GetSupabase().V1GetASsoProviderWithResponse(ctx, ref, providerId)
if err != nil {
return err
}
if resp.JSON200 == nil {
if resp.StatusCode() == http.StatusNotFound {
return errors.Errorf("An identity provider with ID %q could not be found.", providerId)
}
return errors.New("Unexpected error fetching identity provider: " + string(resp.Body))
}
switch format {
case utils.OutputMetadata:
_, err := fmt.Println(*resp.JSON200.Saml.MetadataXml)
return err
case utils.OutputPretty:
return render.SingleMarkdown(api.Provider{
Id: resp.JSON200.Id,
Saml: resp.JSON200.Saml,
Domains: resp.JSON200.Domains,
CreatedAt: resp.JSON200.CreatedAt,
UpdatedAt: resp.JSON200.UpdatedAt,
})
default:
return utils.EncodeOutput(format, os.Stdout, resp.JSON200)
}
}