Refactor some canonical JSON code

This commit is contained in:
Jonas Platte 2021-05-08 02:13:01 +02:00
parent a0457000ff
commit af6fea3d4e
No known key found for this signature in database
GPG key ID: 7D261D771D915378
2 changed files with 28 additions and 33 deletions

View file

@ -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");
} }

View file

@ -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(initial_request) = json_body if let Some(CanonicalJsonValue::Object(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()
}) })
{ {
match initial_request { for (key, value) in initial_request {
CanonicalJsonValue::Object(initial_request) => { json_body.entry(key).or_insert(value);
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();