]> Untitled Git - lemmy.git/blobdiff - crates/apub/src/protocol/objects/mod.rs
Cache & Optimize Woodpecker CI (#3450)
[lemmy.git] / crates / apub / src / protocol / objects / mod.rs
index 2dcf1eed74af86dbba7223849710acc3b70973ee..9a3dab1859949d91c1c3b9f542fd0eb5970df1d8 100644 (file)
@@ -1,4 +1,9 @@
-use lemmy_db_schema::{newtypes::LanguageId, source::language::Language, utils::DbPool};
+use lemmy_db_schema::{
+  impls::actor_language::UNDETERMINED_ID,
+  newtypes::LanguageId,
+  source::language::Language,
+  utils::DbPool,
+};
 use lemmy_utils::error::LemmyError;
 use serde::{Deserialize, Serialize};
 use url::Url;
@@ -28,12 +33,12 @@ pub(crate) struct LanguageTag {
 impl LanguageTag {
   pub(crate) async fn new_single(
     lang: LanguageId,
-    pool: &DbPool,
+    pool: &mut DbPool<'_>,
   ) -> Result<Option<LanguageTag>, LemmyError> {
     let lang = Language::read_from_id(pool, lang).await?;
 
     // undetermined
-    if lang.code == "und" {
+    if lang.id == UNDETERMINED_ID {
       Ok(None)
     } else {
       Ok(Some(LanguageTag {
@@ -45,7 +50,7 @@ impl LanguageTag {
 
   pub(crate) async fn new_multiple(
     lang_ids: Vec<LanguageId>,
-    pool: &DbPool,
+    pool: &mut DbPool<'_>,
   ) -> Result<Vec<LanguageTag>, LemmyError> {
     let mut langs = Vec::<Language>::new();
 
@@ -65,31 +70,34 @@ impl LanguageTag {
 
   pub(crate) async fn to_language_id_single(
     lang: Option<Self>,
-    pool: &DbPool,
+    pool: &mut DbPool<'_>,
   ) -> Result<Option<LanguageId>, LemmyError> {
     let identifier = lang.map(|l| l.identifier);
-    let language = Language::read_id_from_code_opt(pool, identifier.as_deref()).await?;
+    let language = Language::read_id_from_code(pool, identifier.as_deref()).await?;
 
     Ok(language)
   }
 
   pub(crate) async fn to_language_id_multiple(
     langs: Vec<Self>,
-    pool: &DbPool,
+    pool: &mut DbPool<'_>,
   ) -> Result<Vec<LanguageId>, LemmyError> {
     let mut language_ids = Vec::new();
 
     for l in langs {
       let id = l.identifier;
-      language_ids.push(Language::read_id_from_code(pool, &id).await?);
+      language_ids.push(Language::read_id_from_code(pool, Some(&id)).await?);
     }
 
-    Ok(language_ids)
+    Ok(language_ids.into_iter().flatten().collect())
   }
 }
 
 #[cfg(test)]
 mod tests {
+  #![allow(clippy::unwrap_used)]
+  #![allow(clippy::indexing_slicing)]
+
   use crate::protocol::{
     objects::{
       chat_message::ChatMessage,