From f0da94ddb4a802da519b0b46c9bfe72de0dc9c7a Mon Sep 17 00:00:00 2001 From: rizerkrof <34008166+rizerkrof@users.noreply.github.com> Date: Mon, 16 Dec 2024 23:10:34 +0100 Subject: [PATCH 1/8] chore: add precise fuego cli build path to git ignore --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 6bc00644..0226c18e 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,4 @@ coverage.out recipe.db bin go.work.sum -fuego \ No newline at end of file +/cmd/fuego/fuego \ No newline at end of file From 4091c3752e3395a2f0e282db443519c884df4108 Mon Sep 17 00:00:00 2001 From: rizerkrof <34008166+rizerkrof@users.noreply.github.com> Date: Mon, 16 Dec 2024 23:10:40 +0100 Subject: [PATCH 2/8] refactor(cli): change template entity keys --- cmd/fuego/commands/controller.go | 18 +++--- cmd/fuego/templates/controller/controller.go | 64 ++++++++++---------- 2 files changed, 41 insertions(+), 41 deletions(-) diff --git a/cmd/fuego/commands/controller.go b/cmd/fuego/commands/controller.go index 82c03b7c..02617b68 100644 --- a/cmd/fuego/commands/controller.go +++ b/cmd/fuego/commands/controller.go @@ -18,26 +18,26 @@ func Controller() *cli.Command { Usage: "creates a new controller file", Aliases: []string{"c"}, Action: func(cCtx *cli.Context) error { - controllerName := cCtx.Args().First() + entityName := cCtx.Args().First() - if controllerName == "" { - controllerName = "newController" + if entityName == "" { + entityName = "newEntity" fmt.Println("Note: You can add a controller name as an argument. Example: `fuego controller books`") } - _, err := createController(controllerName) + _, err := createController(entityName) if err != nil { return err } - fmt.Printf("🔥 Controller %s created successfully\n", controllerName) + fmt.Printf("🔥 Controller %s created successfully\n", entityName) return nil }, } } // createController creates a new controller file -func createController(controllerName string) (string, error) { +func createController(entityName string) (string, error) { controllerDir := "./controller/" if _, err := os.Stat(controllerDir); os.IsNotExist(err) { err = os.Mkdir(controllerDir, 0o755) @@ -54,10 +54,10 @@ func createController(controllerName string) (string, error) { t := language.English titler := cases.Title(t) - newContent := strings.ReplaceAll(string(templateContent), "newController", controllerName) - newContent = strings.ReplaceAll(newContent, "NewController", titler.String(controllerName)) + newContent := strings.ReplaceAll(string(templateContent), "newEntity", entityName) + newContent = strings.ReplaceAll(newContent, "NewEntity", titler.String(entityName)) - controllerPath := fmt.Sprintf("%s%s.go", controllerDir, controllerName) + controllerPath := fmt.Sprintf("%s%s.go", controllerDir, entityName) err = os.WriteFile(controllerPath, []byte(newContent), 0o644) if err != nil { diff --git a/cmd/fuego/templates/controller/controller.go b/cmd/fuego/templates/controller/controller.go index 9c636818..1f8b1ab7 100644 --- a/cmd/fuego/templates/controller/controller.go +++ b/cmd/fuego/templates/controller/controller.go @@ -4,83 +4,83 @@ import ( "github.com/go-fuego/fuego" ) -type NewControllerResources struct { +type NewEntityResources struct { // TODO add resources - NewControllerService NewControllerService + NewEntityService NewEntityService } -type NewController struct { +type NewEntity struct { ID string `json:"id"` Name string `json:"name"` } -type NewControllerCreate struct { +type NewEntityCreate struct { Name string `json:"name"` } -type NewControllerUpdate struct { +type NewEntityUpdate struct { Name string `json:"name"` } -func (rs NewControllerResources) Routes(s *fuego.Server) { - newControllerGroup := fuego.Group(s, "/newController") +func (rs NewEntityResources) Routes(s *fuego.Server) { + newEntityGroup := fuego.Group(s, "/newEntity") - fuego.Get(newControllerGroup, "/", rs.getAllNewController) - fuego.Post(newControllerGroup, "/", rs.postNewController) + fuego.Get(newEntityGroup, "/", rs.getAllNewEntity) + fuego.Post(newEntityGroup, "/", rs.postNewEntity) - fuego.Get(newControllerGroup, "/{id}", rs.getNewController) - fuego.Put(newControllerGroup, "/{id}", rs.putNewController) - fuego.Delete(newControllerGroup, "/{id}", rs.deleteNewController) + fuego.Get(newEntityGroup, "/{id}", rs.getNewEntity) + fuego.Put(newEntityGroup, "/{id}", rs.putNewEntity) + fuego.Delete(newEntityGroup, "/{id}", rs.deleteNewEntity) } -func (rs NewControllerResources) getAllNewController(c fuego.ContextNoBody) ([]NewController, error) { - return rs.NewControllerService.GetAllNewController() +func (rs NewEntityResources) getAllNewEntity(c fuego.ContextNoBody) ([]NewEntity, error) { + return rs.NewEntityService.GetAllNewEntity() } -func (rs NewControllerResources) postNewController(c *fuego.ContextWithBody[NewControllerCreate]) (NewController, error) { +func (rs NewEntityResources) postNewEntity(c *fuego.ContextWithBody[NewEntityCreate]) (NewEntity, error) { body, err := c.Body() if err != nil { - return NewController{}, err + return NewEntity{}, err } - new, err := rs.NewControllerService.CreateNewController(body) + new, err := rs.NewEntityService.CreateNewEntity(body) if err != nil { - return NewController{}, err + return NewEntity{}, err } return new, nil } -func (rs NewControllerResources) getNewController(c fuego.ContextNoBody) (NewController, error) { +func (rs NewEntityResources) getNewEntity(c fuego.ContextNoBody) (NewEntity, error) { id := c.PathParam("id") - return rs.NewControllerService.GetNewController(id) + return rs.NewEntityService.GetNewEntity(id) } -func (rs NewControllerResources) putNewController(c *fuego.ContextWithBody[NewControllerUpdate]) (NewController, error) { +func (rs NewEntityResources) putNewEntity(c *fuego.ContextWithBody[NewEntityUpdate]) (NewEntity, error) { id := c.PathParam("id") body, err := c.Body() if err != nil { - return NewController{}, err + return NewEntity{}, err } - new, err := rs.NewControllerService.UpdateNewController(id, body) + new, err := rs.NewEntityService.UpdateNewEntity(id, body) if err != nil { - return NewController{}, err + return NewEntity{}, err } return new, nil } -func (rs NewControllerResources) deleteNewController(c *fuego.ContextNoBody) (any, error) { - return rs.NewControllerService.DeleteNewController(c.PathParam("id")) +func (rs NewEntityResources) deleteNewEntity(c *fuego.ContextNoBody) (any, error) { + return rs.NewEntityService.DeleteNewEntity(c.PathParam("id")) } -type NewControllerService interface { - GetNewController(id string) (NewController, error) - CreateNewController(NewControllerCreate) (NewController, error) - GetAllNewController() ([]NewController, error) - UpdateNewController(id string, input NewControllerUpdate) (NewController, error) - DeleteNewController(id string) (any, error) +type NewEntityService interface { + GetNewEntity(id string) (NewEntity, error) + CreateNewEntity(NewEntityCreate) (NewEntity, error) + GetAllNewEntity() ([]NewEntity, error) + UpdateNewEntity(id string, input NewEntityUpdate) (NewEntity, error) + DeleteNewEntity(id string) (any, error) } From 2214f8e4a31816b4ae30180392187811451a5ab8 Mon Sep 17 00:00:00 2001 From: rizerkrof <34008166+rizerkrof@users.noreply.github.com> Date: Mon, 16 Dec 2024 23:45:58 +0100 Subject: [PATCH 3/8] refactor(cli): split controller and entity files --- cmd/fuego/commands/controller.go | 13 ++++++++---- cmd/fuego/commands/controller_test.go | 2 +- cmd/fuego/templates/controller/controller.go | 21 ------------------- cmd/fuego/templates/controller/entity.go | 22 ++++++++++++++++++++ 4 files changed, 32 insertions(+), 26 deletions(-) create mode 100644 cmd/fuego/templates/controller/entity.go diff --git a/cmd/fuego/commands/controller.go b/cmd/fuego/commands/controller.go index 02617b68..d500b764 100644 --- a/cmd/fuego/commands/controller.go +++ b/cmd/fuego/commands/controller.go @@ -25,7 +25,12 @@ func Controller() *cli.Command { fmt.Println("Note: You can add a controller name as an argument. Example: `fuego controller books`") } - _, err := createController(entityName) + _, err := createControllerFile(entityName, "entity.go", entityName+".go") + if err != nil { + return err + } + + _, err = createControllerFile(entityName, "controller.go", entityName+"Controller.go") if err != nil { return err } @@ -37,7 +42,7 @@ func Controller() *cli.Command { } // createController creates a new controller file -func createController(entityName string) (string, error) { +func createControllerFile(entityName, controllerTemplateFileName, outputFileName string) (string, error) { controllerDir := "./controller/" if _, err := os.Stat(controllerDir); os.IsNotExist(err) { err = os.Mkdir(controllerDir, 0o755) @@ -46,7 +51,7 @@ func createController(entityName string) (string, error) { } } - templateContent, err := templates.FS.ReadFile("controller/controller.go") + templateContent, err := templates.FS.ReadFile("controller/" + controllerTemplateFileName) if err != nil { return "", err } @@ -57,7 +62,7 @@ func createController(entityName string) (string, error) { newContent := strings.ReplaceAll(string(templateContent), "newEntity", entityName) newContent = strings.ReplaceAll(newContent, "NewEntity", titler.String(entityName)) - controllerPath := fmt.Sprintf("%s%s.go", controllerDir, entityName) + controllerPath := fmt.Sprintf("%s%s", controllerDir, outputFileName) err = os.WriteFile(controllerPath, []byte(newContent), 0o644) if err != nil { diff --git a/cmd/fuego/commands/controller_test.go b/cmd/fuego/commands/controller_test.go index 111d9423..70653e45 100644 --- a/cmd/fuego/commands/controller_test.go +++ b/cmd/fuego/commands/controller_test.go @@ -8,7 +8,7 @@ import ( ) func TestCreateController(t *testing.T) { - res, err := createController("books") + res, err := createControllerFile("books", "controller.go", "booksController.go") require.NoError(t, err) require.Contains(t, res, "package controller") require.Contains(t, res, `fuego.Get(booksGroup, "/{id}", rs.getBooks)`) diff --git a/cmd/fuego/templates/controller/controller.go b/cmd/fuego/templates/controller/controller.go index 1f8b1ab7..f51db68e 100644 --- a/cmd/fuego/templates/controller/controller.go +++ b/cmd/fuego/templates/controller/controller.go @@ -9,19 +9,6 @@ type NewEntityResources struct { NewEntityService NewEntityService } -type NewEntity struct { - ID string `json:"id"` - Name string `json:"name"` -} - -type NewEntityCreate struct { - Name string `json:"name"` -} - -type NewEntityUpdate struct { - Name string `json:"name"` -} - func (rs NewEntityResources) Routes(s *fuego.Server) { newEntityGroup := fuego.Group(s, "/newEntity") @@ -76,11 +63,3 @@ func (rs NewEntityResources) putNewEntity(c *fuego.ContextWithBody[NewEntityUpda func (rs NewEntityResources) deleteNewEntity(c *fuego.ContextNoBody) (any, error) { return rs.NewEntityService.DeleteNewEntity(c.PathParam("id")) } - -type NewEntityService interface { - GetNewEntity(id string) (NewEntity, error) - CreateNewEntity(NewEntityCreate) (NewEntity, error) - GetAllNewEntity() ([]NewEntity, error) - UpdateNewEntity(id string, input NewEntityUpdate) (NewEntity, error) - DeleteNewEntity(id string) (any, error) -} diff --git a/cmd/fuego/templates/controller/entity.go b/cmd/fuego/templates/controller/entity.go new file mode 100644 index 00000000..8ece824a --- /dev/null +++ b/cmd/fuego/templates/controller/entity.go @@ -0,0 +1,22 @@ +package controller + +type NewEntity struct { + ID string `json:"id"` + Name string `json:"name"` +} + +type NewEntityCreate struct { + Name string `json:"name"` +} + +type NewEntityUpdate struct { + Name string `json:"name"` +} + +type NewEntityService interface { + GetNewEntity(id string) (NewEntity, error) + CreateNewEntity(NewEntityCreate) (NewEntity, error) + GetAllNewEntity() ([]NewEntity, error) + UpdateNewEntity(id string, input NewEntityUpdate) (NewEntity, error) + DeleteNewEntity(id string) (any, error) +} From dd3ae714de717adbcefc5b8aebc32813a43531c7 Mon Sep 17 00:00:00 2001 From: rizerkrof <34008166+rizerkrof@users.noreply.github.com> Date: Tue, 17 Dec 2024 00:07:18 +0100 Subject: [PATCH 4/8] feat(cli): generate controller using ddd pattern --- cmd/fuego/commands/controller.go | 12 ++++++------ cmd/fuego/commands/controller_test.go | 2 +- .../{controller => newEntity}/controller.go | 2 +- .../templates/{controller => newEntity}/entity.go | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) rename cmd/fuego/templates/{controller => newEntity}/controller.go (98%) rename cmd/fuego/templates/{controller => newEntity}/entity.go (96%) diff --git a/cmd/fuego/commands/controller.go b/cmd/fuego/commands/controller.go index d500b764..36d11123 100644 --- a/cmd/fuego/commands/controller.go +++ b/cmd/fuego/commands/controller.go @@ -25,12 +25,12 @@ func Controller() *cli.Command { fmt.Println("Note: You can add a controller name as an argument. Example: `fuego controller books`") } - _, err := createControllerFile(entityName, "entity.go", entityName+".go") + _, err := createNewEntityDomainFile(entityName, "entity.go", entityName+".go") if err != nil { return err } - _, err = createControllerFile(entityName, "controller.go", entityName+"Controller.go") + _, err = createNewEntityDomainFile(entityName, "controller.go", entityName+"Controller.go") if err != nil { return err } @@ -42,16 +42,16 @@ func Controller() *cli.Command { } // createController creates a new controller file -func createControllerFile(entityName, controllerTemplateFileName, outputFileName string) (string, error) { - controllerDir := "./controller/" +func createNewEntityDomainFile(entityName, controllerTemplateFileName, outputFileName string) (string, error) { + controllerDir := "./domains/" + entityName + "/" if _, err := os.Stat(controllerDir); os.IsNotExist(err) { - err = os.Mkdir(controllerDir, 0o755) + err = os.MkdirAll(controllerDir, 0o755) if err != nil { return "", err } } - templateContent, err := templates.FS.ReadFile("controller/" + controllerTemplateFileName) + templateContent, err := templates.FS.ReadFile("newEntity/" + controllerTemplateFileName) if err != nil { return "", err } diff --git a/cmd/fuego/commands/controller_test.go b/cmd/fuego/commands/controller_test.go index 70653e45..fc30dc5d 100644 --- a/cmd/fuego/commands/controller_test.go +++ b/cmd/fuego/commands/controller_test.go @@ -8,7 +8,7 @@ import ( ) func TestCreateController(t *testing.T) { - res, err := createControllerFile("books", "controller.go", "booksController.go") + res, err := createNewEntityDomainFile("books", "controller.go", "booksController.go") require.NoError(t, err) require.Contains(t, res, "package controller") require.Contains(t, res, `fuego.Get(booksGroup, "/{id}", rs.getBooks)`) diff --git a/cmd/fuego/templates/controller/controller.go b/cmd/fuego/templates/newEntity/controller.go similarity index 98% rename from cmd/fuego/templates/controller/controller.go rename to cmd/fuego/templates/newEntity/controller.go index f51db68e..cc187a9e 100644 --- a/cmd/fuego/templates/controller/controller.go +++ b/cmd/fuego/templates/newEntity/controller.go @@ -1,4 +1,4 @@ -package controller +package newEntity import ( "github.com/go-fuego/fuego" diff --git a/cmd/fuego/templates/controller/entity.go b/cmd/fuego/templates/newEntity/entity.go similarity index 96% rename from cmd/fuego/templates/controller/entity.go rename to cmd/fuego/templates/newEntity/entity.go index 8ece824a..cdba5176 100644 --- a/cmd/fuego/templates/controller/entity.go +++ b/cmd/fuego/templates/newEntity/entity.go @@ -1,4 +1,4 @@ -package controller +package newEntity type NewEntity struct { ID string `json:"id"` From 92d75cf46d5cb6b3e4d8328436c966569ceac2e0 Mon Sep 17 00:00:00 2001 From: rizerkrof <34008166+rizerkrof@users.noreply.github.com> Date: Tue, 17 Dec 2024 00:13:11 +0100 Subject: [PATCH 5/8] feat(cli): add service generation --- cmd/fuego/commands/service.go | 38 ++++++++++ cmd/fuego/main.go | 1 + cmd/fuego/templates/newEntity/service.go | 90 ++++++++++++++++++++++++ 3 files changed, 129 insertions(+) create mode 100644 cmd/fuego/commands/service.go create mode 100644 cmd/fuego/templates/newEntity/service.go diff --git a/cmd/fuego/commands/service.go b/cmd/fuego/commands/service.go new file mode 100644 index 00000000..c1133cbc --- /dev/null +++ b/cmd/fuego/commands/service.go @@ -0,0 +1,38 @@ +package commands + +import ( + "fmt" + + "github.com/urfave/cli/v2" +) + +func Service() *cli.Command { + return &cli.Command{ + Name: "service", + Usage: "creates a new service file", + Aliases: []string{"s"}, + Action: serviceCommandAction, + } +} + +func serviceCommandAction(cCtx *cli.Context) error { + entityName := cCtx.Args().First() + + if entityName == "" { + entityName = "newController" + fmt.Println("Note: You can add an entity name as an argument. Example: `fuego service books`") + } + + _, err := createNewEntityDomainFile(entityName, "entity.go", entityName+".go") + if err != nil { + return err + } + + _, err = createNewEntityDomainFile(entityName, "service.go", entityName+"Service.go") + if err != nil { + return err + } + + fmt.Printf("🔥 Service %s created successfully\n", entityName) + return nil +} diff --git a/cmd/fuego/main.go b/cmd/fuego/main.go index d40c7ada..2e0ef6a2 100644 --- a/cmd/fuego/main.go +++ b/cmd/fuego/main.go @@ -20,6 +20,7 @@ func main() { }, Commands: []*cli.Command{ commands.Controller(), + commands.Service(), }, } diff --git a/cmd/fuego/templates/newEntity/service.go b/cmd/fuego/templates/newEntity/service.go new file mode 100644 index 00000000..3a2047fb --- /dev/null +++ b/cmd/fuego/templates/newEntity/service.go @@ -0,0 +1,90 @@ +package newEntity + +import ( + "fmt" + "sync" + "time" + + "github.com/go-fuego/fuego" +) + +type NewEntityServiceImpl struct { + newEntityRepository map[string]NewEntity + mu sync.RWMutex +} + +var _ NewEntityService = &NewEntityServiceImpl{} + +func NewNewEntityService() NewEntityService { + return &NewEntityServiceImpl{ + newEntityRepository: make(map[string]NewEntity), + } +} + +func (bs *NewEntityServiceImpl) GetNewEntity(id string) (NewEntity, error) { + bs.mu.RLock() + defer bs.mu.RUnlock() + + newEntity, exists := bs.newEntityRepository[id] + if !exists { + return NewEntity{}, fuego.NotFoundError{Title: "NewEntity not found with id " + id} + } + + return newEntity, nil +} + +func (bs *NewEntityServiceImpl) CreateNewEntity(input NewEntityCreate) (NewEntity, error) { + bs.mu.Lock() + defer bs.mu.Unlock() + + id := fmt.Sprintf("%d", time.Now().UnixNano()) + newEntity := NewEntity{ + ID: id, + Name: input.Name, + } + + bs.newEntityRepository[id] = newEntity + return newEntity, nil +} + +func (bs *NewEntityServiceImpl) GetAllNewEntity() ([]NewEntity, error) { + bs.mu.RLock() + defer bs.mu.RUnlock() + + allNewEntity := make([]NewEntity, 0, len(bs.newEntityRepository)) + for _, newEntity := range bs.newEntityRepository { + allNewEntity = append(allNewEntity, newEntity) + } + + return allNewEntity, nil +} + +func (bs *NewEntityServiceImpl) UpdateNewEntity(id string, input NewEntityUpdate) (NewEntity, error) { + bs.mu.Lock() + defer bs.mu.Unlock() + + newEntity, exists := bs.newEntityRepository[id] + if !exists { + return NewEntity{}, fuego.NotFoundError{Title: "NewEntity not found with id " + id} + } + + if input.Name != "" { + newEntity.Name = input.Name + } + + bs.newEntityRepository[id] = newEntity + return newEntity, nil +} + +func (bs *NewEntityServiceImpl) DeleteNewEntity(id string) (any, error) { + bs.mu.Lock() + defer bs.mu.Unlock() + + _, exists := bs.newEntityRepository[id] + if !exists { + return nil, fuego.NotFoundError{Title: "NewEntity not found with id " + id} + } + + delete(bs.newEntityRepository, id) + return "deleted", nil +} From 99346b7ea3412d9be04245280eb4d0e5e0e81cfe Mon Sep 17 00:00:00 2001 From: rizerkrof <34008166+rizerkrof@users.noreply.github.com> Date: Tue, 17 Dec 2024 00:21:59 +0100 Subject: [PATCH 6/8] feat(cli): add --with-service flag to generate service and controller --- cmd/fuego/commands/controller.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/cmd/fuego/commands/controller.go b/cmd/fuego/commands/controller.go index 36d11123..b4819467 100644 --- a/cmd/fuego/commands/controller.go +++ b/cmd/fuego/commands/controller.go @@ -38,6 +38,20 @@ func Controller() *cli.Command { fmt.Printf("🔥 Controller %s created successfully\n", entityName) return nil }, + Flags: []cli.Flag{ + &cli.BoolFlag{ + Name: "with-service", + Usage: "enable service file generation", + Value: false, + Action: func(cCtx *cli.Context, shouldGenerateServiceFile bool) error { + if !shouldGenerateServiceFile { + return nil + } + + return serviceCommandAction(cCtx) + }, + }, + }, } } From 5d13e871b0ec060e098c1300f76db090a05fb9d8 Mon Sep 17 00:00:00 2001 From: rizerkrof <34008166+rizerkrof@users.noreply.github.com> Date: Sat, 7 Dec 2024 13:27:32 +0100 Subject: [PATCH 7/8] docs(cli): reference new flag in crud generation doc --- documentation/docs/tutorials/02-crud.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/documentation/docs/tutorials/02-crud.md b/documentation/docs/tutorials/02-crud.md index 74c7b202..b76a36a9 100644 --- a/documentation/docs/tutorials/02-crud.md +++ b/documentation/docs/tutorials/02-crud.md @@ -14,7 +14,13 @@ fuego controller books go run github.com/go-fuego/fuego/cmd/fuego@latest controller books ``` -This generates a controller and a service for the `books` resource. +This generates a controller for the `books` resource. + +:::tip + +Use `fuego controller --with-service books` to generate a simple map based in memory service so you can pass it to the controller resources to quickly interact with your new book entity! + +::: You then have to implement the service interface in the controller to be able to play with data. It's a form of **dependency injection** that we chose to use From 637569669d996a5ed51ea34544a10737d45009de Mon Sep 17 00:00:00 2001 From: rizerkrof <34008166+rizerkrof@users.noreply.github.com> Date: Tue, 17 Dec 2024 18:14:36 +0100 Subject: [PATCH 8/8] refactor(cli): simplify return in generated controller func --- cmd/fuego/templates/newEntity/controller.go | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/cmd/fuego/templates/newEntity/controller.go b/cmd/fuego/templates/newEntity/controller.go index cc187a9e..39bf42d9 100644 --- a/cmd/fuego/templates/newEntity/controller.go +++ b/cmd/fuego/templates/newEntity/controller.go @@ -30,12 +30,7 @@ func (rs NewEntityResources) postNewEntity(c *fuego.ContextWithBody[NewEntityCre return NewEntity{}, err } - new, err := rs.NewEntityService.CreateNewEntity(body) - if err != nil { - return NewEntity{}, err - } - - return new, nil + return rs.NewEntityService.CreateNewEntity(body) } func (rs NewEntityResources) getNewEntity(c fuego.ContextNoBody) (NewEntity, error) { @@ -52,12 +47,7 @@ func (rs NewEntityResources) putNewEntity(c *fuego.ContextWithBody[NewEntityUpda return NewEntity{}, err } - new, err := rs.NewEntityService.UpdateNewEntity(id, body) - if err != nil { - return NewEntity{}, err - } - - return new, nil + return rs.NewEntityService.UpdateNewEntity(id, body) } func (rs NewEntityResources) deleteNewEntity(c *fuego.ContextNoBody) (any, error) {