Skip to content
Snippets Groups Projects
Unverified Commit af6fea3d authored by Jonas Platte's avatar Jonas Platte
Browse files

Refactor some canonical JSON code

parent a0457000
No related branches found
No related tags found
No related merge requests found
...@@ -213,7 +213,10 @@ pub fn to_member_event(&self) -> Raw<StateEvent<MemberEventContent>> { ...@@ -213,7 +213,10 @@ pub fn to_member_event(&self) -> Raw<StateEvent<MemberEventContent>> {
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 @@ async fn from_data(request: &'a Request<'_>, data: Data) -> data::Outcome<Self, ...@@ -271,41 +271,33 @@ async fn from_data(request: &'a Request<'_>, data: Data) -> data::Outcome<Self,
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();
......
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