diff --git a/tools/hook/hook.go b/tools/hook/hook.go index 2c68b70e..f3ea1d30 100644 --- a/tools/hook/hook.go +++ b/tools/hook/hook.go @@ -108,7 +108,7 @@ func (h *Hook[T]) Bind(handler *Handler[T]) string { // The registered handler is added with a default 0 priority and the id will be autogenerated. // // If you want to register a handler with custom priority or id use the [Hook.Bind] method. -func (h *Hook[T]) BindFunc(fn func(T) error) string { +func (h *Hook[T]) BindFunc(fn func(e T) error) string { return h.Bind(&Handler[T]{Func: fn}) } diff --git a/tools/hook/tagged.go b/tools/hook/tagged.go index d92cb94e..4363979a 100644 --- a/tools/hook/tagged.go +++ b/tools/hook/tagged.go @@ -73,7 +73,7 @@ func (h *TaggedHook[T]) Bind(handler *Handler[T]) string { // // It is similar to [Hook.Bind] with the difference that the handler // function is invoked only if the event data tags satisfy h.CanTriggerOn. -func (h *TaggedHook[T]) BindFunc(fn func(T) error) string { +func (h *TaggedHook[T]) BindFunc(fn func(e T) error) string { return h.mainHook.BindFunc(func(e T) error { if h.CanTriggerOn(e.Tags()) { return fn(e) diff --git a/tools/router/group.go b/tools/router/group.go index 9cf3c373..c9dec0fb 100644 --- a/tools/router/group.go +++ b/tools/router/group.go @@ -137,6 +137,11 @@ func (group *RouterGroup[T]) GET(path string, action func(T) error) *Route[T] { return group.Route(http.MethodGet, path, action) } +// SEARCH is a shorthand for [Group.AddRoute] with SEARCH as route method. +func (group *RouterGroup[T]) SEARCH(path string, action func(T) error) *Route[T] { + return group.Route("SEARCH", path, action) +} + // POST is a shorthand for [Group.AddRoute] with POST as route method. func (group *RouterGroup[T]) POST(path string, action func(T) error) *Route[T] { return group.Route(http.MethodPost, path, action) diff --git a/tools/router/group_test.go b/tools/router/group_test.go index 1b655af6..aeafca44 100644 --- a/tools/router/group_test.go +++ b/tools/router/group_test.go @@ -260,6 +260,11 @@ func TestRouterGroupRouteAliases(t *testing.T) { http.MethodGet, "/test", }, + { + group.SEARCH("/test", testAction), + "SEARCH", + "/test", + }, { group.POST("/test", testAction), http.MethodPost,