summaryrefslogtreecommitdiff
path: root/cmd/generate/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/generate/main.go')
-rw-r--r--cmd/generate/main.go7
1 files changed, 5 insertions, 2 deletions
diff --git a/cmd/generate/main.go b/cmd/generate/main.go
index feed0f0..eddd4cb 100644
--- a/cmd/generate/main.go
+++ b/cmd/generate/main.go
@@ -123,7 +123,10 @@ func run() error {
if pattern, ok = strings.CutPrefix(hhRoute, "//hh:route "); !ok {
continue
}
- parsedRequestType, ok := f.Type.Params.List[1].Type.(*ast.StructType)
+ if len(f.Type.Params.List) != 1 {
+ return errors.New("Handler must take exactly one parameter")
+ }
+ parsedRequestType, ok := f.Type.Params.List[0].Type.(*ast.StructType)
if !ok {
return errors.New("Parsed request type must be a struct")
}
@@ -165,7 +168,7 @@ func run() error {
winner,
)
}
- if parsedField.TypeDef == "*http.Request" {
+ if parsedField.TypeDef == "*http.Request" || parsedField.TypeDef == "http.ResponseWriter" {
parsedFunction.RequestTypeFields = append(parsedFunction.RequestTypeFields, parsedField)
continue
}