Skip to content

Commit

Permalink
Fix redirects
Browse files Browse the repository at this point in the history
This regression was introduced in ca2a162.
Redirects like /team.html -> /governance didn't work anymore.

In the update from Rocket v0.5.0-rc.3 to v0.5.0, there was a breaking
change missed in the changelog of v0.5.0-rc.4 that affected us.
https://github.com/rwf2/Rocket/blob/v0.5.0-rc.4/CHANGELOG.md

The relevant section in the changelog starts with the line:
"The status codes used when built-in guards forward were changed."

We used the status code 404 to invoke our custom `not_found` catcher.
This custom catcher is responsible for the redirects.
When the status code changed to 422, this catcher was not invoked and
the redirects were not triggered.

This fix simply invokes the catcher for both status codes 404 and 422.
  • Loading branch information
senekor committed Feb 8, 2024
1 parent 0b933a8 commit d3ecb91
Showing 1 changed file with 10 additions and 1 deletion.
11 changes: 10 additions & 1 deletion src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -301,6 +301,12 @@ fn not_found(req: &Request) -> Result<Template, Redirect> {
Ok(not_found_locale(lang))
}

#[catch(422)]
#[allow(clippy::result_large_err)]
fn unprocessable_content(req: &Request) -> Result<Template, Redirect> {
not_found(req)
}

fn not_found_locale(lang: String) -> Template {
let page = "404";
let context = Context::new(page, "error404-page-title", false, (), lang);
Expand Down Expand Up @@ -526,5 +532,8 @@ async fn rocket() -> _ {
redirect_bare_en_us,
],
)
.register("/", catchers![not_found, catch_error])
.register(
"/",
catchers![not_found, unprocessable_content, catch_error],
)
}

0 comments on commit d3ecb91

Please sign in to comment.