From d60688c66fee935740495a0281ff1db99f1328b6 Mon Sep 17 00:00:00 2001 From: yusing Date: Tue, 22 Apr 2025 09:18:25 +0800 Subject: [PATCH] fix(route): error not being returned --- internal/route/route.go | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/internal/route/route.go b/internal/route/route.go index 449bc53f..e9139254 100644 --- a/internal/route/route.go +++ b/internal/route/route.go @@ -59,6 +59,7 @@ type ( impl types.Route isValidated bool + lastError gperr.Error } Routes map[string]*Route ) @@ -68,9 +69,9 @@ func (r Routes) Contains(alias string) bool { return ok } -func (r *Route) Validate() (err gperr.Error) { +func (r *Route) Validate() gperr.Error { if r.isValidated { - return nil + return r.lastError } r.isValidated = true r.Finalize() @@ -88,6 +89,9 @@ func (r *Route) Validate() (err gperr.Error) { errs := gperr.NewBuilder("entry validation failed") + var impl types.Route + var err gperr.Error + switch r.Scheme { case types.SchemeFileServer: r.impl, err = NewFileServer(r) @@ -115,10 +119,10 @@ func (r *Route) Validate() (err gperr.Error) { } if errs.HasError() { - return errs.Error() + r.lastError = errs.Error() + return r.lastError } - var impl types.Route switch r.Scheme { case types.SchemeFileServer: impl, err = NewFileServer(r) @@ -131,6 +135,7 @@ func (r *Route) Validate() (err gperr.Error) { } if err != nil { + r.lastError = err return err } @@ -139,7 +144,7 @@ func (r *Route) Validate() (err gperr.Error) { } func (r *Route) Start(parent task.Parent) (err gperr.Error) { - if r.impl == nil { + if r.impl == nil { // should not happen return gperr.New("route not initialized") }