Skip to content

Commit 26ef984

Browse files
authored
fix: Register plugin configs in echo (#16)
# Register plugin configs in echo ## Description The plugin level configs were not registered in echo due to which the endpoints registered via plugins were not working. This fixes the bug. - New feature (non-breaking change which adds functionality) - Bug fix (non-breaking change which fixes an issue) ## Deployment Notes These should highlight any db migrations, feature toggles, etc.
1 parent c8d2965 commit 26ef984

File tree

1 file changed

+30
-17
lines changed

1 file changed

+30
-17
lines changed

fastecho.go

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ package fastecho
1616

1717
import (
1818
gocontext "context"
19+
"errors"
1920
"fmt"
2021
"maps"
2122
"net/http"
@@ -163,21 +164,6 @@ func (s *server) setup(cfg *Config) error {
163164
// set up echo
164165
s.Echo = echo.New()
165166

166-
// set up validation
167-
vdt, err := router.NewValidator()
168-
if err != nil {
169-
return err
170-
}
171-
172-
if cfg.ValidationRegistrar != nil {
173-
// register custom validations
174-
err = cfg.ValidationRegistrar(vdt)
175-
if err != nil {
176-
return err
177-
}
178-
}
179-
s.Echo.Validator = vdt
180-
181167
// config the service
182168
err = s.config(cfg)
183169
if err != nil {
@@ -187,7 +173,7 @@ func (s *server) setup(cfg *Config) error {
187173
// set up middlewares
188174
s.middlewares(cfg)
189175

190-
router, err := router.NewRouter(
176+
fastechoRouter, err := router.NewRouter(
191177
router.Config{
192178
Echo: s.Echo,
193179
Routes: cfg.Routes,
@@ -201,7 +187,34 @@ func (s *server) setup(cfg *Config) error {
201187
if err != nil {
202188
return err
203189
}
204-
s.Router = router
190+
191+
// set up validation
192+
vdt, err := router.NewValidator()
193+
if err != nil {
194+
return err
195+
}
196+
if cfg.ValidationRegistrar != nil {
197+
// register custom validations
198+
err = cfg.ValidationRegistrar(vdt)
199+
if err != nil {
200+
return err
201+
}
202+
}
203+
// register plugin validations and routes
204+
for _, plugin := range cfg.Plugins {
205+
err = plugin.ValidationRegistrar(vdt)
206+
if err != nil {
207+
return errors.New("error registering plugin validation: " + err.Error())
208+
}
209+
// Register plugin routes
210+
fmt.Println("Registering plugin routes")
211+
err = plugin.Routes(s.Echo, fastechoRouter)
212+
if err != nil {
213+
return errors.New("error registering plugin routes: " + err.Error())
214+
}
215+
}
216+
s.Echo.Validator = vdt
217+
s.Router = fastechoRouter
205218

206219
return err
207220
}

0 commit comments

Comments
 (0)