mirror of
https://gitlab.com/famedly/conduit.git
synced 2024-11-17 10:48:18 -07:00
improvement: /event route
This commit is contained in:
parent
d0cdbe2e2b
commit
f3f95a73d0
@ -164,6 +164,7 @@ fn setup_rocket() -> (rocket::Rocket, Config) {
|
|||||||
server_server::get_public_rooms_route,
|
server_server::get_public_rooms_route,
|
||||||
server_server::get_public_rooms_filtered_route,
|
server_server::get_public_rooms_filtered_route,
|
||||||
server_server::send_transaction_message_route,
|
server_server::send_transaction_message_route,
|
||||||
|
server_server::get_event_route,
|
||||||
server_server::get_missing_events_route,
|
server_server::get_missing_events_route,
|
||||||
server_server::get_room_state_ids_route,
|
server_server::get_room_state_ids_route,
|
||||||
server_server::get_profile_information_route,
|
server_server::get_profile_information_route,
|
||||||
|
@ -1388,6 +1388,34 @@ pub(crate) fn append_incoming_pdu(
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg_attr(
|
||||||
|
feature = "conduit_bin",
|
||||||
|
get("/_matrix/federation/v1/event/<_>", data = "<body>")
|
||||||
|
)]
|
||||||
|
#[tracing::instrument(skip(db, body))]
|
||||||
|
pub fn get_event_route<'a>(
|
||||||
|
db: State<'a, Database>,
|
||||||
|
body: Ruma<get_event::v1::Request<'_>>,
|
||||||
|
) -> ConduitResult<get_event::v1::Response> {
|
||||||
|
if !db.globals.allow_federation() {
|
||||||
|
return Err(Error::bad_config("Federation is disabled."));
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok(get_event::v1::Response {
|
||||||
|
origin: db.globals.server_name().to_owned(),
|
||||||
|
origin_server_ts: SystemTime::now(),
|
||||||
|
pdu: PduEvent::convert_to_outgoing_federation_event(
|
||||||
|
serde_json::from_value(
|
||||||
|
db.rooms
|
||||||
|
.get_pdu_json(&body.event_id)?
|
||||||
|
.ok_or(Error::BadRequest(ErrorKind::NotFound, "Event not found."))?,
|
||||||
|
)
|
||||||
|
.map_err(|_| Error::bad_database("Invalid pdu in database."))?,
|
||||||
|
),
|
||||||
|
}
|
||||||
|
.into())
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg_attr(
|
#[cfg_attr(
|
||||||
feature = "conduit_bin",
|
feature = "conduit_bin",
|
||||||
post("/_matrix/federation/v1/get_missing_events/<_>", data = "<body>")
|
post("/_matrix/federation/v1/get_missing_events/<_>", data = "<body>")
|
||||||
|
Loading…
Reference in New Issue
Block a user