Refactor some canonical JSON code

merge-requests/77/head
Jonas Platte 3 years ago
parent a0457000ff
commit af6fea3d4e
No known key found for this signature in database
GPG Key ID: 7D261D771D915378

@ -213,7 +213,10 @@ impl PduEvent {
pub fn convert_to_outgoing_federation_event( pub fn convert_to_outgoing_federation_event(
mut pdu_json: CanonicalJsonObject, mut pdu_json: CanonicalJsonObject,
) -> Raw<ruma::events::pdu::Pdu> { ) -> Raw<ruma::events::pdu::Pdu> {
if let Some(CanonicalJsonValue::Object(unsigned)) = pdu_json.get_mut("unsigned") { if let Some(unsigned) = pdu_json
.get_mut("unsigned")
.and_then(|val| val.as_object_mut())
{
unsigned.remove("transaction_id"); unsigned.remove("transaction_id");
} }

@ -271,41 +271,33 @@ where
http_request = http_request.header(header.name.as_str(), &*header.value); http_request = http_request.header(header.name.as_str(), &*header.value);
} }
match &mut json_body { if let Some(json_body) = json_body.as_mut().and_then(|val| val.as_object_mut()) {
Some(CanonicalJsonValue::Object(json_body)) => { let user_id = sender_user.clone().unwrap_or_else(|| {
let user_id = sender_user.clone().unwrap_or_else(|| { UserId::parse_with_server_name("", db.globals.server_name())
UserId::parse_with_server_name("", db.globals.server_name()) .expect("we know this is valid")
.expect("we know this is valid") });
});
if let Some(CanonicalJsonValue::Object(initial_request)) = json_body
if let Some(initial_request) = json_body .get("auth")
.get("auth") .and_then(|auth| auth.as_object())
.and_then(|auth| auth.as_object()) .and_then(|auth| auth.get("session"))
.and_then(|auth| auth.get("session")) .and_then(|session| session.as_str())
.and_then(|session| session.as_str()) .and_then(|session| {
.and_then(|session| { db.uiaa
db.uiaa .get_uiaa_request(
.get_uiaa_request( &user_id,
&user_id, &sender_device.clone().unwrap_or_else(|| "".into()),
&sender_device.clone().unwrap_or_else(|| "".into()), session,
session, )
) .ok()
.ok() .flatten()
.flatten() })
}) {
{ for (key, value) in initial_request {
match initial_request { json_body.entry(key).or_insert(value);
CanonicalJsonValue::Object(initial_request) => {
for (key, value) in initial_request.into_iter() {
json_body.entry(key).or_insert(value);
}
}
_ => {}
}
} }
body = serde_json::to_vec(json_body).expect("value to bytes can't fail");
} }
_ => {} body = serde_json::to_vec(json_body).expect("value to bytes can't fail");
} }
let http_request = http_request.body(&*body).unwrap(); let http_request = http_request.body(&*body).unwrap();

Loading…
Cancel
Save