From 762fbe85112045193ef982a57a831e92f331bc34 Mon Sep 17 00:00:00 2001 From: Jonas Kaninda Date: Mon, 18 Nov 2024 09:20:12 +0100 Subject: [PATCH] feat: add track duplicate route names --- internal/route.go | 7 +++++++ internal/route_config.go | 15 +++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/internal/route.go b/internal/route.go index 137dccc..7dc7aeb 100644 --- a/internal/route.go +++ b/internal/route.go @@ -44,6 +44,13 @@ func (gatewayServer GatewayServer) Initialize() *mux.Router { } dynamicRoutes = append(dynamicRoutes, extraRoutes...) } + //find duplicated route name + duplicates := findDuplicateRouteNames(dynamicRoutes) + if len(duplicates) != 0 { + for _, duplicate := range duplicates { + logger.Error("Duplicate route name found: %s ", duplicate) + } + } m := gatewayServer.middlewares redisBased := false if len(gateway.Redis.Addr) != 0 { diff --git a/internal/route_config.go b/internal/route_config.go index 07e337c..77fd94f 100644 --- a/internal/route_config.go +++ b/internal/route_config.go @@ -53,3 +53,18 @@ func loadExtraRoutes(routePath string) ([]Route, error) { } return extraRoutes, nil } + +func findDuplicateRouteNames(routes []Route) []string { + // Create a map to track occurrences of names + nameMap := make(map[string]int) + var duplicates []string + + for _, route := range routes { + nameMap[route.Name]++ + // If the count is ==2, it's a duplicate + if nameMap[route.Name] == 2 { + duplicates = append(duplicates, route.Name) + } + } + return duplicates +}