Skip to content

Commit b6af8c9

Browse files
authored
Merge pull request #242 from gofiber/codex/2025-11-30-18-22-41
2 parents d10e351 + b3cc5a8 commit b6af8c9

File tree

2 files changed

+14
-63
lines changed

2 files changed

+14
-63
lines changed

cmd/internal/migrations/v3/redirect_methods.go

Lines changed: 6 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -116,62 +116,22 @@ func transformRedirectCall(call *ast.CallExpr, ctx ast.Expr, method string, stat
116116
func wrapWithRedirectStatus(ctx, target, status ast.Expr, method string) ast.CallExpr {
117117
redirectCall := &ast.CallExpr{Fun: &ast.SelectorExpr{X: ctx, Sel: ast.NewIdent("Redirect")}}
118118

119-
targetIdent := ast.NewIdent("__fiberRedirectTarget")
120-
statusIdent := ast.NewIdent("__fiberRedirectStatus")
121-
122-
redirectStatus := &ast.CallExpr{
123-
Fun: &ast.SelectorExpr{X: redirectCall, Sel: ast.NewIdent("Status")},
124-
Args: []ast.Expr{statusIdent},
125-
}
126-
127-
redirectWithTarget := &ast.CallExpr{
128-
Fun: &ast.SelectorExpr{X: redirectStatus, Sel: ast.NewIdent(method)},
129-
Args: []ast.Expr{targetIdent},
130-
}
119+
redirectStatus := &ast.CallExpr{Fun: &ast.SelectorExpr{X: redirectCall, Sel: ast.NewIdent("Status")}, Args: []ast.Expr{status}}
131120

132121
return ast.CallExpr{
133-
Fun: &ast.FuncLit{
134-
Type: &ast.FuncType{Params: &ast.FieldList{}},
135-
Body: &ast.BlockStmt{List: []ast.Stmt{
136-
&ast.AssignStmt{Lhs: []ast.Expr{targetIdent}, Tok: token.DEFINE, Rhs: []ast.Expr{target}},
137-
&ast.AssignStmt{Lhs: []ast.Expr{statusIdent}, Tok: token.DEFINE, Rhs: []ast.Expr{status}},
138-
&ast.ReturnStmt{Results: []ast.Expr{redirectWithTarget}},
139-
}},
140-
},
122+
Fun: &ast.SelectorExpr{X: redirectStatus, Sel: ast.NewIdent(method)},
123+
Args: []ast.Expr{target},
141124
}
142125
}
143126

144127
func wrapRouteWithStatus(ctx ast.Expr, args []ast.Expr, status ast.Expr) ast.CallExpr {
145128
redirectCall := &ast.CallExpr{Fun: &ast.SelectorExpr{X: ctx, Sel: ast.NewIdent("Redirect")}}
146-
statusIdent := ast.NewIdent("__fiberRedirectStatus")
147-
148-
var routeArgIdents []ast.Expr
149-
var stmts []ast.Stmt
150-
for i, arg := range args {
151-
ident := ast.NewIdent(fmt.Sprintf("__fiberRedirectRouteArg%d", i))
152-
routeArgIdents = append(routeArgIdents, ident)
153-
stmts = append(stmts, &ast.AssignStmt{Lhs: []ast.Expr{ident}, Tok: token.DEFINE, Rhs: []ast.Expr{arg}})
154-
}
155129

156-
stmts = append(stmts, &ast.AssignStmt{Lhs: []ast.Expr{statusIdent}, Tok: token.DEFINE, Rhs: []ast.Expr{status}})
157-
158-
redirectStatus := &ast.CallExpr{
159-
Fun: &ast.SelectorExpr{X: redirectCall, Sel: ast.NewIdent("Status")},
160-
Args: []ast.Expr{statusIdent},
161-
}
162-
163-
redirectRoute := &ast.CallExpr{
164-
Fun: &ast.SelectorExpr{X: redirectStatus, Sel: ast.NewIdent("Route")},
165-
Args: routeArgIdents,
166-
}
167-
168-
stmts = append(stmts, &ast.ReturnStmt{Results: []ast.Expr{redirectRoute}})
130+
redirectStatus := &ast.CallExpr{Fun: &ast.SelectorExpr{X: redirectCall, Sel: ast.NewIdent("Status")}, Args: []ast.Expr{status}}
169131

170132
return ast.CallExpr{
171-
Fun: &ast.FuncLit{
172-
Type: &ast.FuncType{Params: &ast.FieldList{}},
173-
Body: &ast.BlockStmt{List: stmts},
174-
},
133+
Fun: &ast.SelectorExpr{X: redirectStatus, Sel: ast.NewIdent("Route")},
134+
Args: args,
175135
}
176136
}
177137

cmd/internal/migrations/v3/redirect_methods_test.go

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -38,21 +38,13 @@ func handler(c fiber.Ctx) error {
3838
require.NoError(t, v3.MigrateRedirectMethods(cmd, dir, nil, nil))
3939

4040
content := readFile(t, file)
41-
assert.Contains(t, content, ".Redirect().To(\"/foo\")")
42-
assert.Contains(t, content, "__fiberRedirectTarget := \"/bar\"")
43-
assert.Contains(t, content, "__fiberRedirectStatus := fiber.StatusPermanentRedirect")
44-
assert.Contains(t, content, "return c.Redirect().Status(__fiberRedirectStatus).To(__fiberRedirectTarget)")
45-
assert.Contains(t, content, ".Redirect().Back()")
46-
assert.Contains(t, content, "__fiberRedirectTarget := \"/fallback\"")
47-
assert.Contains(t, content, "__fiberRedirectStatus := 301")
48-
assert.Contains(t, content, "return c.Redirect().Status(__fiberRedirectStatus).Back(__fiberRedirectTarget)")
49-
assert.Contains(t, content, ".Redirect().Route(\"home\")")
50-
assert.Contains(t, content, "__fiberRedirectRouteArg0 := \"home-redirect\"")
51-
assert.Contains(t, content, "return c.Redirect().Status(__fiberRedirectStatus).Route(__fiberRedirectRouteArg0)")
52-
assert.Contains(t, content, "__fiberRedirectRouteArg1 := fiber.Map{}")
53-
assert.Contains(t, content, "return c.Redirect().Status(__fiberRedirectStatus).Route(__fiberRedirectRouteArg0, __fiberRedirectRouteArg1)")
54-
assert.Contains(t, content, "__fiberRedirectRouteArg0 := \"dashboard\"")
55-
assert.Contains(t, content, "__fiberRedirectStatus := 308")
41+
assert.Contains(t, content, "c.Redirect().To(\"/foo\")")
42+
assert.Contains(t, content, "c.Redirect().Status(fiber.StatusPermanentRedirect).To(\"/bar\")")
43+
assert.Contains(t, content, "c.Redirect().Back()")
44+
assert.Contains(t, content, "c.Redirect().Status(301).Back(\"/fallback\")")
45+
assert.Contains(t, content, "c.Redirect().Route(\"home\")")
46+
assert.Contains(t, content, "c.Redirect().Status(301).Route(\"home-redirect\")")
47+
assert.Contains(t, content, "c.Redirect().Status(308).Route(\"dashboard\", fiber.Map{})")
5648
assert.Contains(t, buf.String(), "Migrating redirect methods")
5749
}
5850

@@ -79,6 +71,5 @@ func handler(c fiber.Ctx) error {
7971
require.NoError(t, v3.MigrateRedirectMethods(cmd, dir, nil, nil))
8072

8173
content := readFile(t, file)
82-
assert.Equal(t, 1, strings.Count(content, "__fiberRedirectStatus := 302"))
83-
assert.Contains(t, content, "return c.Redirect().Status(__fiberRedirectStatus).To(__fiberRedirectTarget)")
74+
assert.Equal(t, 1, strings.Count(content, "c.Redirect().Status(302).To(\"/foo\")"))
8475
}

0 commit comments

Comments
 (0)