unroll filter_map() to easier .await

This commit is contained in:
Mina Galić 2020-05-25 20:00:28 +02:00
parent a508a4150c
commit 41f97b01f0
No known key found for this signature in database
GPG Key ID: ACFEFF7F6A123A86

View File

@ -1,3 +1,4 @@
use activitypub::link;
use chrono::Utc; use chrono::Utc;
use heck::{CamelCase, KebabCase}; use heck::{CamelCase, KebabCase};
use rocket::request::LenientForm; use rocket::request::LenientForm;
@ -303,13 +304,15 @@ pub async fn update(
.expect("post::update: update error"); .expect("post::update: update error");
if post.published { if post.published {
post.update_mentions( // NOTE: here we unroll a filter_map(), so we can use .await painlessly
&conn, let mut filtered_mentions: Vec<link::Mention> = vec![];
mentions for m in mentions.into_iter() {
.into_iter() match Mention::build_activity(&rockets, &m).await {
.filter_map(|m| Mention::build_activity(&rockets, &m).await.ok()) Ok(m) => filtered_mentions.push(m),
.collect(), Err(_) => {}
) }
}
post.update_mentions(&conn, filtered_mentions)
.expect("post::update: mentions error"); .expect("post::update: mentions error");
} }