mirror of
https://github.com/yusing/godoxy.git
synced 2025-07-21 03:54:02 +02:00
refactor(middleware): improve common options handling in apply method
This commit is contained in:
parent
731121595c
commit
f39513483b
1 changed files with 13 additions and 8 deletions
|
@ -89,16 +89,21 @@ func (m *Middleware) apply(optsRaw OptionsRaw) gperr.Error {
|
||||||
if len(optsRaw) == 0 {
|
if len(optsRaw) == 0 {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
commonOpts := map[string]any{
|
commonOpts := map[string]any{}
|
||||||
"priority": optsRaw["priority"],
|
if priority, ok := optsRaw["priority"]; ok {
|
||||||
"bypass": optsRaw["bypass"],
|
commonOpts["priority"] = priority
|
||||||
}
|
}
|
||||||
if err := serialization.MapUnmarshalValidate(commonOpts, &m.commonOptions); err != nil {
|
if bypass, ok := optsRaw["bypass"]; ok {
|
||||||
return err
|
commonOpts["bypass"] = bypass
|
||||||
}
|
}
|
||||||
optsRaw = maps.Clone(optsRaw)
|
if len(commonOpts) > 0 {
|
||||||
for k := range commonOpts {
|
if err := serialization.MapUnmarshalValidate(commonOpts, &m.commonOptions); err != nil {
|
||||||
delete(optsRaw, k)
|
return err
|
||||||
|
}
|
||||||
|
optsRaw = maps.Clone(optsRaw)
|
||||||
|
for k := range commonOpts {
|
||||||
|
delete(optsRaw, k)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return serialization.MapUnmarshalValidate(optsRaw, m.impl)
|
return serialization.MapUnmarshalValidate(optsRaw, m.impl)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue