move to v4

Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
2025-03-03 23:51:11 +03:00
parent a7a682cfc3
commit a9be8cdc54
11 changed files with 218 additions and 2630 deletions

View File

@@ -10,8 +10,7 @@ import (
func NewOptions(opts ...Option) Options {
options := Options{
ServerHandlerFn: DefaultServerHandlerFn,
ServerSubscriberFn: DefaultServerSubscriberFn,
ServerHandlerFn: DefaultServerHandlerFn,
}
for _, o := range opts {
o(&options)
@@ -20,8 +19,7 @@ func NewOptions(opts ...Option) Options {
}
type Options struct {
ServerHandlerFn func(context.Context, server.Request, interface{}, error) error
ServerSubscriberFn func(context.Context, server.Message, error) error
ServerHandlerFn func(context.Context, server.Request, interface{}, error) error
}
type Option func(*Options)
@@ -32,21 +30,10 @@ func ServerHandlerFunc(fn func(context.Context, server.Request, interface{}, err
}
}
func ServerSubscriberFunc(fn func(context.Context, server.Message, error) error) Option {
return func(o *Options) {
o.ServerSubscriberFn = fn
}
var DefaultServerHandlerFn = func(ctx context.Context, req server.Request, rsp interface{}, err error) error {
return errors.BadRequest("", "%v", err)
}
var (
DefaultServerHandlerFn = func(ctx context.Context, req server.Request, rsp interface{}, err error) error {
return errors.BadRequest("", "%v", err)
}
DefaultServerSubscriberFn = func(ctx context.Context, req server.Message, err error) error {
return errors.BadRequest("", "%v", err)
}
)
var Hook = NewHook()
type hook struct {
@@ -74,21 +61,3 @@ func (w *hook) ServerHandler(next server.FuncHandler) server.FuncHandler {
return err
}
}
func (w *hook) ServerSubscriber(next server.FuncSubHandler) server.FuncSubHandler {
return func(ctx context.Context, msg server.Message) (err error) {
defer func() {
r := recover()
switch verr := r.(type) {
case nil:
return
case error:
err = w.opts.ServerSubscriberFn(ctx, msg, verr)
default:
err = w.opts.ServerSubscriberFn(ctx, msg, fmt.Errorf("%v", r))
}
}()
err = next(ctx, msg)
return err
}
}