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 }