38 lines
973 B
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
|
|
}
|