Return final and use cache key var

pull/148/head
video-prize-ranch 2023-03-28 17:45:02 -04:00
rodzic 4e60a72236
commit a3f60cea18
Nie znaleziono w bazie danych klucza dla tego podpisu
2 zmienionych plików z 11 dodań i 11 usunięć

Wyświetl plik

@ -58,12 +58,12 @@ func (o *Options) getRedirects(giteaClient *gitea.Client, redirectsCache cache.S
})
}
}
_ = redirectsCache.Set(o.TargetOwner+"/"+o.TargetRepo+"/"+o.TargetBranch, redirects, redirectsCacheTimeout)
_ = redirectsCache.Set(cacheKey, redirects, redirectsCacheTimeout)
}
return redirects
}
func (o *Options) matchRedirects(ctx *context.Context, giteaClient *gitea.Client, redirects []Redirect, redirectsCache cache.SetGetKey) {
func (o *Options) matchRedirects(ctx *context.Context, giteaClient *gitea.Client, redirects []Redirect, redirectsCache cache.SetGetKey) (final bool) {
if len(redirects) > 0 {
for _, redirect := range redirects {
reqUrl := ctx.Req.RequestURI
@ -74,10 +74,10 @@ func (o *Options) matchRedirects(ctx *context.Context, giteaClient *gitea.Client
if redirect.StatusCode == 200 {
o.TargetPath = redirect.To
o.Upstream(ctx, giteaClient, redirectsCache)
return
return true
} else {
ctx.Redirect(redirect.To, redirect.StatusCode)
return
return true
}
}
@ -90,23 +90,25 @@ func (o *Options) matchRedirects(ctx *context.Context, giteaClient *gitea.Client
if redirect.StatusCode == 200 {
o.TargetPath = splatUrl
o.Upstream(ctx, giteaClient, redirectsCache)
return
return true
} else {
ctx.Redirect(splatUrl, redirect.StatusCode)
return
return true
}
} else {
// do rewrite if status code is 200
if redirect.StatusCode == 200 {
o.TargetPath = redirect.To
o.Upstream(ctx, giteaClient, redirectsCache)
return
return true
} else {
ctx.Redirect(redirect.To, redirect.StatusCode)
return
return true
}
}
}
}
}
return false
}

Wyświetl plik

@ -140,9 +140,7 @@ func (o *Options) Upstream(ctx *context.Context, giteaClient *gitea.Client, redi
// Get and match redirects
redirects := o.getRedirects(giteaClient, redirectsCache)
o.matchRedirects(ctx, giteaClient, redirects, redirectsCache)
return false
return o.matchRedirects(ctx, giteaClient, redirects, redirectsCache)
}
// handle unexpected client errors