[Add] when loading contacts calls are added
This commit is contained in:
parent
f545d31e66
commit
205738b32a
2 changed files with 52 additions and 42 deletions
8
Cargo.lock
generated
8
Cargo.lock
generated
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue