genmiddleware.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package gogen
  2. import (
  3. _ "embed"
  4. "strings"
  5. "github.com/wuntsong-org/go-zero-plus/tools/goctlwt/api/spec"
  6. "github.com/wuntsong-org/go-zero-plus/tools/goctlwt/config"
  7. "github.com/wuntsong-org/go-zero-plus/tools/goctlwt/util/format"
  8. )
  9. //go:embed middleware.tpl
  10. var middlewareImplementCode string
  11. func genMiddleware(dir string, cfg *config.Config, api *spec.ApiSpec) error {
  12. middlewares := getMiddleware(api)
  13. for _, item := range middlewares {
  14. middlewareFilename := strings.TrimSuffix(strings.ToLower(item), "middleware") + "_middleware"
  15. filename, err := format.FileNamingFormat(cfg.NamingFormat, middlewareFilename)
  16. if err != nil {
  17. return err
  18. }
  19. name := strings.TrimSuffix(item, "Middleware") + "Middleware"
  20. err = genFile(fileGenConfig{
  21. dir: dir,
  22. subdir: middlewareDir,
  23. filename: filename + ".go",
  24. templateName: "contextTemplate",
  25. category: category,
  26. templateFile: middlewareImplementCodeFile,
  27. builtinTemplate: middlewareImplementCode,
  28. data: map[string]string{
  29. "name": strings.Title(name),
  30. },
  31. })
  32. if err != nil {
  33. return err
  34. }
  35. }
  36. return nil
  37. }