Skip to content
Snippets Groups Projects
Commit 2837151d authored by Jason Volk's avatar Jason Volk
Browse files

redirect legacy url preview


Signed-off-by: default avatarJason Volk <jason@zemos.net>
parent 3d8757c8
No related branches found
No related tags found
2 merge requests!561morguldir/sliding sync fixes,!559Auth Media
...@@ -5,13 +5,15 @@ ...@@ -5,13 +5,15 @@
mod response; mod response;
pub mod state; pub mod state;
use std::str::FromStr;
use axum::{ use axum::{
response::IntoResponse, response::{IntoResponse, Redirect},
routing::{any, get, post}, routing::{any, get, post},
Router, Router,
}; };
use conduit::{err, Server}; use conduit::{err, Server};
use http::Uri; use http::{uri, Uri};
use self::handler::RouterExt; use self::handler::RouterExt;
pub(super) use self::{args::Args as Ruma, response::RumaResponse, state::State}; pub(super) use self::{args::Args as Ruma, response::RumaResponse, state::State};
...@@ -243,11 +245,29 @@ pub fn build(router: Router<State>, server: &Server) -> Router<State> { ...@@ -243,11 +245,29 @@ pub fn build(router: Router<State>, server: &Server) -> Router<State> {
); );
} else { } else {
router = router.route("/_matrix/media/*path", any(legacy_media_disabled)); router = router.route("/_matrix/media/*path", any(legacy_media_disabled));
router = router.route("/_matrix/media/v3/preview_url", any(redirect_legacy_preview));
} }
router router
} }
async fn redirect_legacy_preview(uri: Uri) -> impl IntoResponse {
let path = "/_matrix/client/v1/media/preview_url";
let query = uri.query().unwrap_or_default();
let path_and_query = format!("{path}?{query}");
let path_and_query = uri::PathAndQuery::from_str(&path_and_query)
.expect("Failed to build PathAndQuery for media preview redirect URI");
let uri = uri::Builder::new()
.path_and_query(path_and_query)
.build()
.expect("Failed to build URI for redirect")
.to_string();
Redirect::temporary(&uri)
}
async fn initial_sync(_uri: Uri) -> impl IntoResponse { async fn initial_sync(_uri: Uri) -> impl IntoResponse {
err!(Request(GuestAccessForbidden("Guest access not implemented"))) err!(Request(GuestAccessForbidden("Guest access not implemented")))
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment