2024-10-27 06:10:27 +01:00
|
|
|
package pkg
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"errors"
|
|
|
|
|
"slices"
|
|
|
|
|
"strings"
|
|
|
|
|
)
|
|
|
|
|
|
2024-10-30 16:38:09 +01:00
|
|
|
func getMiddleware(rules []string, middlewares []Middleware) (Middleware, error) {
|
2024-10-27 06:10:27 +01:00
|
|
|
for _, m := range middlewares {
|
|
|
|
|
if slices.Contains(rules, m.Name) {
|
|
|
|
|
return m, nil
|
|
|
|
|
}
|
|
|
|
|
continue
|
|
|
|
|
}
|
|
|
|
|
|
2024-11-15 14:24:35 +01:00
|
|
|
return Middleware{}, errors.New("middlewares not found with name: [" + strings.Join(rules, ";") + "]")
|
2024-10-27 06:10:27 +01:00
|
|
|
}
|
|
|
|
|
|
2024-10-30 16:38:09 +01:00
|
|
|
func doesExist(tyName string) bool {
|
|
|
|
|
middlewareList := []string{BasicAuth, JWTAuth, AccessMiddleware}
|
2024-11-15 08:57:27 +01:00
|
|
|
return slices.Contains(middlewareList, tyName)
|
2024-10-30 16:38:09 +01:00
|
|
|
}
|
2024-10-30 20:48:58 +01:00
|
|
|
func GetMiddleware(rule string, middlewares []Middleware) (Middleware, error) {
|
|
|
|
|
for _, m := range middlewares {
|
|
|
|
|
if strings.Contains(rule, m.Name) {
|
|
|
|
|
|
|
|
|
|
return m, nil
|
|
|
|
|
}
|
|
|
|
|
continue
|
|
|
|
|
}
|
|
|
|
|
|
2024-11-15 14:24:35 +01:00
|
|
|
return Middleware{}, errors.New("no middlewares found with name " + rule)
|
2024-10-30 20:48:58 +01:00
|
|
|
}
|