github.com/segakazzz/buffalo@v0.16.22-0.20210119082501-1f52048d3feb/genny/resource/actions.go (about)

     1  package resource
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/gobuffalo/flect/name"
     7  	"github.com/gobuffalo/genny/v2"
     8  	"github.com/gobuffalo/genny/v2/gogen"
     9  )
    10  
    11  func addResource(pres presenter) genny.RunFn {
    12  	return func(r *genny.Runner) error {
    13  		f, err := r.FindFile("actions/app.go")
    14  		if err != nil {
    15  			return err
    16  		}
    17  		stmt := fmt.Sprintf("app.Resource(\"/%s\", %sResource{})", pres.Name.URL(), pres.Name.Resource())
    18  		f, err = gogen.AddInsideBlock(f, "if app == nil {", stmt)
    19  		if err != nil {
    20  			return err
    21  		}
    22  		return r.File(f)
    23  	}
    24  }
    25  
    26  func actions(opts *Options) []name.Ident {
    27  	actions := []name.Ident{
    28  		name.New("list"),
    29  		name.New("show"),
    30  		name.New("create"),
    31  		name.New("update"),
    32  		name.New("destroy"),
    33  	}
    34  
    35  	if opts.App.AsWeb {
    36  		actions = append(actions, name.New("new"), name.New("edit"))
    37  	}
    38  
    39  	return actions
    40  }