github.com/supabase/cli@v1.168.1/internal/vanity_subdomains/check/check.go (about)

     1  package check
     2  
     3  import (
     4  	"context"
     5  	"fmt"
     6  	"strings"
     7  
     8  	"github.com/go-errors/errors"
     9  	"github.com/spf13/afero"
    10  	"github.com/supabase/cli/internal/utils"
    11  	"github.com/supabase/cli/pkg/api"
    12  )
    13  
    14  func Run(ctx context.Context, projectRef string, desiredSubdomain string, fsys afero.Fs) error {
    15  	// 1. Sanity checks.
    16  	subdomain := strings.TrimSpace(desiredSubdomain)
    17  	{
    18  		if len(subdomain) == 0 {
    19  			return errors.New("non-empty vanity subdomain expected")
    20  		}
    21  	}
    22  
    23  	// 2. check if the subdomain is available
    24  	{
    25  		resp, err := utils.GetSupabase().CheckVanitySubdomainAvailabilityWithResponse(ctx, projectRef, api.CheckVanitySubdomainAvailabilityJSONRequestBody{
    26  			VanitySubdomain: subdomain,
    27  		})
    28  		if err != nil {
    29  			return errors.Errorf("failed to check vanity subdomain: %w", err)
    30  		}
    31  		if resp.JSON201 == nil {
    32  			return errors.New("failed to check subdomain availability: " + string(resp.Body))
    33  		}
    34  		fmt.Printf("Subdomain %s available: %+v\n", subdomain, resp.JSON201.Available)
    35  		return nil
    36  	}
    37  }