github.com/supabase/cli@v1.168.1/internal/utils/tenant/storage.go (about)

     1  package tenant
     2  
     3  import (
     4  	"context"
     5  	"io"
     6  	"net/http"
     7  
     8  	"github.com/go-errors/errors"
     9  )
    10  
    11  var errStorageVersion = errors.New("Storage version not found.")
    12  
    13  func (t *TenantAPI) GetStorageVersion(ctx context.Context) (string, error) {
    14  	resp, err := t.Send(ctx, http.MethodGet, "/storage/v1/version", nil)
    15  	if err != nil {
    16  		return "", err
    17  	}
    18  	defer resp.Body.Close()
    19  	data, err := io.ReadAll(resp.Body)
    20  	if err != nil {
    21  		return "", errors.Errorf("failed to read response body: %w", err)
    22  	}
    23  	if len(data) == 0 || string(data) == "0.0.0" {
    24  		return "", errors.New(errStorageVersion)
    25  	}
    26  	return "v" + string(data), nil
    27  }