[Add] when loading contacts calls are added

This commit is contained in:
Alex Emmet 2026-04-19 20:54:01 +02:00
commit 205738b32a
2 changed files with 52 additions and 42 deletions

8
Cargo.lock generated
View file

@ -3279,7 +3279,7 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
[[package]]
name = "ttp-core"
version = "0.1.0"
source = "git+https://git.methanium.net/Tensamin/TTP.git#01cefdf60d77b39565d662f5b585058a2b62decf"
source = "git+https://git.methanium.net/Tensamin/TTP.git#4c8cacf8e8b58d917c24fa6baecefefbce2294b3"
dependencies = [
"base64 0.22.1",
"byteorder",
@ -3292,7 +3292,7 @@ dependencies = [
[[package]]
name = "ttp-native"
version = "0.1.0"
source = "git+https://git.methanium.net/Tensamin/TTP.git#01cefdf60d77b39565d662f5b585058a2b62decf"
source = "git+https://git.methanium.net/Tensamin/TTP.git#4c8cacf8e8b58d917c24fa6baecefefbce2294b3"
dependencies = [
"quinn",
"rustls",
@ -3345,9 +3345,9 @@ dependencies = [
[[package]]
name = "typenum"
version = "1.19.0"
version = "1.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb"
checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de"
[[package]]
name = "unicode-ident"

View file

@ -452,32 +452,40 @@ impl GeneralConnection {
})
.collect()
};
if mapped.is_empty() {
DataValue::Array(contacts)
} else {
let mut new_contacts: Vec<DataValue> = Vec::new();
for contact in contacts {
if let Some(mut contact_map) = contact.as_map() {
let filtered_mapped: Vec<(
Arc<Caller>,
&Arc<CallGroup>,
)> = mapped
.clone()
.into_iter()
.filter(|(caller, _)| {
caller.user_id
== contact_map
.get(&DataTypes::user_id)
.unwrap_or(&DataValue::Null)
.as_number()
.unwrap_or(0)
as u64
})
.collect();
if filtered_mapped.is_empty() {
new_contacts.push(
DataValue::container_from_map(&contact_map),
);
continue;
}
let mut new_contacts: Vec<DataValue> = Vec::new();
for contact in contacts {
if let Some(mut contact_map) = contact.as_map() {
let filtered_mapped: Vec<(
Arc<Caller>,
&Arc<CallGroup>,
)> = mapped
.clone()
.into_iter()
.filter(|(caller, _)| {
caller.user_id
== contact_map
.get(&DataTypes::user_id)
.unwrap_or(&DataValue::Null)
.as_number()
.unwrap_or(0)
as u64
})
.collect();
let mut vec_of_filtered_calls: Vec<DataValue> =
Vec::new();
for (caller, call_group) in filtered_mapped {
vec_of_filtered_calls.push(DataValue::Container(
vec![
let mut vec_of_filtered_calls: Vec<DataValue> =
Vec::new();
for (caller, call_group) in filtered_mapped {
vec_of_filtered_calls.push(
DataValue::Container(vec![
(
DataTypes::call_id,
DataValue::Str(
@ -508,22 +516,24 @@ impl GeneralConnection {
.clone(),
),
),
],
]),
);
}
contact_map.insert(
DataTypes::calls,
DataValue::Array(vec_of_filtered_calls),
);
new_contacts.push(DataValue::container_from_map(
&contact_map,
));
} else {
new_contacts.push(contact.clone());
}
contact_map.insert(
DataTypes::calls,
DataValue::Array(vec_of_filtered_calls),
);
new_contacts
.push(DataValue::container_from_map(&contact_map));
} else {
new_contacts.push(contact.clone());
}
DataValue::Array(new_contacts)
}
DataValue::Array(new_contacts)
} else {
v.clone()
}