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

     1  package activate
     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. create vanity subdomain
    24  	{
    25  		resp, err := utils.GetSupabase().ActivateVanitySubdomainPleaseWithResponse(ctx, projectRef, api.ActivateVanitySubdomainPleaseJSONRequestBody{
    26  			VanitySubdomain: subdomain,
    27  		})
    28  		if err != nil {
    29  			return errors.Errorf("failed activate vanity subdomain: %w", err)
    30  		}
    31  		if resp.JSON201 == nil {
    32  			return errors.New("failed to create vanity subdomain config: " + string(resp.Body))
    33  		}
    34  		fmt.Printf("Activated vanity subdomain at %s\n", resp.JSON201.CustomDomain)
    35  		return nil
    36  	}
    37  }