fix: gen provider
This commit is contained in:
@@ -55,4 +55,4 @@ func WrapError(err error, format string, args ...interface{}) error {
|
||||
|
||||
// Wrap other errors with a generic parse error
|
||||
return NewRouteError(ErrParseFailed, format, args...).WithCause(err)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,6 @@ import (
|
||||
"go.ipao.vip/atomctl/v2/pkg/utils/gomod"
|
||||
)
|
||||
|
||||
|
||||
//go:embed router.go.tpl
|
||||
var routeTpl string
|
||||
|
||||
|
||||
@@ -17,11 +17,11 @@ type TemplateRenderer interface {
|
||||
|
||||
// TemplateInfo provides metadata about the template
|
||||
type TemplateInfo struct {
|
||||
Name string
|
||||
Version string
|
||||
Functions []string
|
||||
Options []string
|
||||
Size int
|
||||
Name string
|
||||
Version string
|
||||
Functions []string
|
||||
Options []string
|
||||
Size int
|
||||
}
|
||||
|
||||
// RouteRenderer implements TemplateRenderer for route generation
|
||||
@@ -108,8 +108,8 @@ func (r *RouteRenderer) Render(data RenderData) ([]byte, error) {
|
||||
}
|
||||
|
||||
r.logger.WithFields(log.Fields{
|
||||
"package_name": data.PackageName,
|
||||
"routes_count": len(data.Routes),
|
||||
"package_name": data.PackageName,
|
||||
"routes_count": len(data.Routes),
|
||||
"content_length": len(result),
|
||||
}).Debug("Template rendered successfully")
|
||||
|
||||
|
||||
@@ -12,7 +12,6 @@ import (
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
|
||||
type RouteDefinition struct {
|
||||
FilePath string
|
||||
Path string
|
||||
@@ -80,24 +79,24 @@ func ParseFile(file string) []RouteDefinition {
|
||||
imports := extractImports(node)
|
||||
|
||||
parser := &routeParser{
|
||||
file: file,
|
||||
node: node,
|
||||
imports: imports,
|
||||
routes: make(map[string]RouteDefinition),
|
||||
actions: make(map[string][]ActionDefinition),
|
||||
usedImports: make(map[string][]string),
|
||||
file: file,
|
||||
node: node,
|
||||
imports: imports,
|
||||
routes: make(map[string]RouteDefinition),
|
||||
actions: make(map[string][]ActionDefinition),
|
||||
usedImports: make(map[string][]string),
|
||||
}
|
||||
|
||||
return parser.parse()
|
||||
}
|
||||
|
||||
type routeParser struct {
|
||||
file string
|
||||
node *ast.File
|
||||
imports map[string]string
|
||||
routes map[string]RouteDefinition
|
||||
actions map[string][]ActionDefinition
|
||||
usedImports map[string][]string
|
||||
file string
|
||||
node *ast.File
|
||||
imports map[string]string
|
||||
routes map[string]RouteDefinition
|
||||
actions map[string][]ActionDefinition
|
||||
usedImports map[string][]string
|
||||
}
|
||||
|
||||
func (p *routeParser) parse() []RouteDefinition {
|
||||
@@ -127,8 +126,8 @@ func (p *routeParser) parseFunctionDeclarations() {
|
||||
|
||||
func (p *routeParser) isValidFunctionDeclaration(decl *ast.FuncDecl, ok bool) bool {
|
||||
return ok &&
|
||||
decl.Recv != nil &&
|
||||
decl.Doc != nil
|
||||
decl.Recv != nil &&
|
||||
decl.Doc != nil
|
||||
}
|
||||
|
||||
func (p *routeParser) extractReceiverType(decl *ast.FuncDecl) string {
|
||||
|
||||
@@ -26,7 +26,7 @@ func (c *UserController) GetUser() error {
|
||||
|
||||
// Create a temporary file for testing
|
||||
tmpFile := "/tmp/test_route.go"
|
||||
err := os.WriteFile(tmpFile, []byte(code), 0644)
|
||||
err := os.WriteFile(tmpFile, []byte(code), 0o644)
|
||||
assert.NoError(t, err, "Should create temp file")
|
||||
defer os.Remove(tmpFile)
|
||||
|
||||
@@ -63,7 +63,7 @@ func (c *UserController) GetUser(id string, limit int) {
|
||||
|
||||
// Create a temporary file for testing
|
||||
tmpFile := "/tmp/test_params.go"
|
||||
err := os.WriteFile(tmpFile, []byte(code), 0644)
|
||||
err := os.WriteFile(tmpFile, []byte(code), 0o644)
|
||||
assert.NoError(t, err, "Should create temp file")
|
||||
defer os.Remove(tmpFile)
|
||||
|
||||
@@ -104,7 +104,7 @@ func (c *UserController) GetUser() {
|
||||
|
||||
// Create a temporary file for testing
|
||||
tmpFile := "/tmp/test_invalid.go"
|
||||
err := os.WriteFile(tmpFile, []byte(code), 0644)
|
||||
err := os.WriteFile(tmpFile, []byte(code), 0o644)
|
||||
assert.NoError(t, err, "Should create temp file")
|
||||
defer os.Remove(tmpFile)
|
||||
|
||||
@@ -130,7 +130,7 @@ func (c *UserController) GetUser() {
|
||||
|
||||
// Create a temporary file for testing
|
||||
tmpFile := "/tmp/test_empty.go"
|
||||
err := os.WriteFile(tmpFile, []byte(code), 0644)
|
||||
err := os.WriteFile(tmpFile, []byte(code), 0o644)
|
||||
assert.NoError(t, err, "Should create temp file")
|
||||
defer os.Remove(tmpFile)
|
||||
|
||||
@@ -196,7 +196,7 @@ func (c *HealthController) Check() error {
|
||||
`
|
||||
// Create a temporary file for testing
|
||||
tmpFile := "/tmp/test_compatibility.go"
|
||||
err := os.WriteFile(tmpFile, []byte(code), 0644)
|
||||
err := os.WriteFile(tmpFile, []byte(code), 0o644)
|
||||
assert.NoError(t, err, "Should create temp file")
|
||||
defer os.Remove(tmpFile)
|
||||
|
||||
@@ -251,7 +251,7 @@ func (c *ApiController) DownloadFile(filename string) error {
|
||||
}
|
||||
`
|
||||
tmpFile := "/tmp/test_special_paths.go"
|
||||
err := os.WriteFile(tmpFile, []byte(code), 0644)
|
||||
err := os.WriteFile(tmpFile, []byte(code), 0o644)
|
||||
assert.NoError(t, err, "Should create temp file")
|
||||
defer os.Remove(tmpFile)
|
||||
|
||||
@@ -352,13 +352,13 @@ func (c *HealthController) Check() error {
|
||||
// Create a realistic file structure
|
||||
tmpDir := "/tmp/test_app"
|
||||
httpDir := tmpDir + "/app/http"
|
||||
err := os.MkdirAll(httpDir, 0755)
|
||||
err := os.MkdirAll(httpDir, 0o755)
|
||||
assert.NoError(t, err, "Should create directory structure")
|
||||
defer os.RemoveAll(tmpDir)
|
||||
|
||||
// Write controller file
|
||||
controllerFile := httpDir + "/user_controller.go"
|
||||
err = os.WriteFile(controllerFile, []byte(code), 0644)
|
||||
err = os.WriteFile(controllerFile, []byte(code), 0o644)
|
||||
assert.NoError(t, err, "Should write controller file")
|
||||
|
||||
// WHEN parsing using the same method as CLI
|
||||
@@ -398,7 +398,7 @@ type EmptyController struct {
|
||||
}
|
||||
`
|
||||
tmpFile := "/tmp/test_empty.go"
|
||||
err := os.WriteFile(tmpFile, []byte(code), 0644)
|
||||
err := os.WriteFile(tmpFile, []byte(code), 0o644)
|
||||
assert.NoError(t, err, "Should create temp file")
|
||||
defer os.Remove(tmpFile)
|
||||
|
||||
@@ -419,7 +419,7 @@ package main
|
||||
type BrokenController struct {
|
||||
`
|
||||
tmpFile := "/tmp/test_broken.go"
|
||||
err := os.WriteFile(tmpFile, []byte(code), 0644)
|
||||
err := os.WriteFile(tmpFile, []byte(code), 0o644)
|
||||
assert.NoError(t, err, "Should create temp file")
|
||||
defer os.Remove(tmpFile)
|
||||
|
||||
@@ -538,4 +538,4 @@ func TestRouteRenderer(t *testing.T) {
|
||||
assert.NotEmpty(t, content)
|
||||
assert.Contains(t, string(content), "package main")
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user