Return final and use cache key var

This commit is contained in:
video-prize-ranch 2023-03-28 17:45:02 -04:00
parent 4e60a72236
commit a3f60cea18
No known key found for this signature in database
2 changed files with 11 additions and 11 deletions

View file

@ -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 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 { if len(redirects) > 0 {
for _, redirect := range redirects { for _, redirect := range redirects {
reqUrl := ctx.Req.RequestURI reqUrl := ctx.Req.RequestURI
@ -74,10 +74,10 @@ func (o *Options) matchRedirects(ctx *context.Context, giteaClient *gitea.Client
if redirect.StatusCode == 200 { if redirect.StatusCode == 200 {
o.TargetPath = redirect.To o.TargetPath = redirect.To
o.Upstream(ctx, giteaClient, redirectsCache) o.Upstream(ctx, giteaClient, redirectsCache)
return return true
} else { } else {
ctx.Redirect(redirect.To, redirect.StatusCode) 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 { if redirect.StatusCode == 200 {
o.TargetPath = splatUrl o.TargetPath = splatUrl
o.Upstream(ctx, giteaClient, redirectsCache) o.Upstream(ctx, giteaClient, redirectsCache)
return return true
} else { } else {
ctx.Redirect(splatUrl, redirect.StatusCode) ctx.Redirect(splatUrl, redirect.StatusCode)
return return true
} }
} else { } else {
// do rewrite if status code is 200 // do rewrite if status code is 200
if redirect.StatusCode == 200 { if redirect.StatusCode == 200 {
o.TargetPath = redirect.To o.TargetPath = redirect.To
o.Upstream(ctx, giteaClient, redirectsCache) o.Upstream(ctx, giteaClient, redirectsCache)
return return true
} else { } else {
ctx.Redirect(redirect.To, redirect.StatusCode) ctx.Redirect(redirect.To, redirect.StatusCode)
return return true
} }
} }
} }
} }
} }
return false
} }

View file

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