supabase-cli/internal/functions/delete/delete.go

38 lines
973 B
Go

package delete
import (
"context"
"fmt"
"net/http"
"github.com/go-errors/errors"
"github.com/spf13/afero"
"github.com/supabase/cli/internal/utils"
)
func Run(ctx context.Context, slug string, projectRef string, fsys afero.Fs) error {
// 1. Sanity checks.
{
if err := utils.ValidateFunctionSlug(slug); err != nil {
return err
}
}
// 2. Delete Function.
resp, err := utils.GetSupabase().V1DeleteAFunctionWithResponse(ctx, projectRef, slug)
if err != nil {
return errors.Errorf("failed to delete function: %w", err)
}
switch resp.StatusCode() {
case http.StatusNotFound:
return errors.New("Function " + utils.Aqua(slug) + " does not exist on the Supabase project.")
case http.StatusOK:
break
default:
return errors.New("Failed to delete Function " + utils.Aqua(slug) + " on the Supabase project: " + string(resp.Body))
}
fmt.Println("Deleted Function " + utils.Aqua(slug) + " from project " + utils.Aqua(projectRef) + ".")
return nil
}