mirror of
https://github.com/LemmyNet/lemmy.git
synced 2024-06-13 02:49:22 +00:00
Update actor_language.rs
This commit is contained in:
parent
4cd16d8794
commit
154573a49c
|
@ -83,11 +83,12 @@ impl LocalUserLanguage {
|
||||||
.build_transaction()
|
.build_transaction()
|
||||||
.run(|conn| {
|
.run(|conn| {
|
||||||
Box::pin(async move {
|
Box::pin(async move {
|
||||||
use crate::schema::local_user_language::dsl::{local_user_id, local_user_language};
|
use crate::schema::local_user_language::dsl::{local_user_id, local_user_language, language_id};
|
||||||
// Clear the current user languages
|
// Delete old languages, not including new languages
|
||||||
delete(local_user_language.filter(local_user_id.eq(for_local_user_id)))
|
let delete_old = delete(local_user_language)
|
||||||
.execute(conn)
|
.filter(local_user_id.eq(for_local_user_id))
|
||||||
.await?;
|
.filter(language_id.ne_all(&lang_ids)
|
||||||
|
.execute(conn);
|
||||||
|
|
||||||
let forms = lang_ids
|
let forms = lang_ids
|
||||||
.into_iter()
|
.into_iter()
|
||||||
|
@ -97,10 +98,14 @@ impl LocalUserLanguage {
|
||||||
})
|
})
|
||||||
.collect::<Vec<_>>();
|
.collect::<Vec<_>>();
|
||||||
|
|
||||||
insert_into(local_user_language)
|
// Insert new languages
|
||||||
|
let insert_new = insert_into(local_user_language)
|
||||||
.values(forms)
|
.values(forms)
|
||||||
.execute(conn)
|
.on_conflict((language_id, local_user_id))
|
||||||
.await?;
|
.do_nothing()
|
||||||
|
.execute(conn);
|
||||||
|
|
||||||
|
tokio::try_join!(delete_old, insert_new)?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}) as _
|
}) as _
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in a new issue