github.com/taubyte/tau-cli@v0.1.13-0.20240326000942-487f0d57edfc/prompts/function/edit.go (about)

     1  package functionPrompts
     2  
     3  import (
     4  	structureSpec "github.com/taubyte/go-specs/structure"
     5  	"github.com/taubyte/tau-cli/common"
     6  	"github.com/taubyte/tau-cli/prompts"
     7  	"github.com/urfave/cli/v2"
     8  )
     9  
    10  func Edit(ctx *cli.Context, function *structureSpec.Function) (err error) {
    11  	function.Description = prompts.GetOrAskForADescription(ctx, function.Description)
    12  	function.Tags = prompts.GetOrAskForTags(ctx, function.Tags)
    13  
    14  	function.Timeout, err = prompts.GetOrRequireATimeout(ctx, function.Timeout)
    15  	if err != nil {
    16  		return
    17  	}
    18  
    19  	function.Memory, err = prompts.GetOrRequireMemoryAndType(ctx, false, function.Memory)
    20  	if err != nil {
    21  		return
    22  	}
    23  
    24  	function.Type, err = GetFunctionType(ctx, function.Type)
    25  	if err != nil {
    26  		return
    27  	}
    28  
    29  	switch function.Type {
    30  	case common.FunctionTypeHttp:
    31  		err = editHttp(ctx, function)
    32  	case common.FunctionTypeHttps:
    33  		function.Secure = true
    34  		err = editHttp(ctx, function)
    35  	case common.FunctionTypeP2P:
    36  		err = editP2P(ctx, function)
    37  	case common.FunctionTypePubSub:
    38  		err = editPubSub(ctx, function)
    39  	}
    40  	if err != nil {
    41  		return
    42  	}
    43  
    44  	source, err := prompts.GetOrSelectSource(ctx, function.Source)
    45  	if err != nil {
    46  		return
    47  	}
    48  	function.Source = source.String()
    49  
    50  	function.Call = prompts.GetOrRequireACall(ctx, source, function.Call)
    51  
    52  	return
    53  }