|
|
@ -4,8 +4,12 @@ use crate::{
|
|
|
|
schema::{local_site, site, site_language},
|
|
|
|
schema::{local_site, site, site_language},
|
|
|
|
source::{
|
|
|
|
source::{
|
|
|
|
actor_language::{
|
|
|
|
actor_language::{
|
|
|
|
CommunityLanguage, CommunityLanguageForm, LocalUserLanguage, LocalUserLanguageForm,
|
|
|
|
CommunityLanguage,
|
|
|
|
SiteLanguage, SiteLanguageForm,
|
|
|
|
CommunityLanguageForm,
|
|
|
|
|
|
|
|
LocalUserLanguage,
|
|
|
|
|
|
|
|
LocalUserLanguageForm,
|
|
|
|
|
|
|
|
SiteLanguage,
|
|
|
|
|
|
|
|
SiteLanguageForm,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
language::Language,
|
|
|
|
language::Language,
|
|
|
|
site::Site,
|
|
|
|
site::Site,
|
|
|
@ -17,7 +21,9 @@ use diesel::{
|
|
|
|
dsl::{count, exists},
|
|
|
|
dsl::{count, exists},
|
|
|
|
insert_into,
|
|
|
|
insert_into,
|
|
|
|
result::Error,
|
|
|
|
result::Error,
|
|
|
|
select, ExpressionMethods, QueryDsl,
|
|
|
|
select,
|
|
|
|
|
|
|
|
ExpressionMethods,
|
|
|
|
|
|
|
|
QueryDsl,
|
|
|
|
};
|
|
|
|
};
|
|
|
|
use diesel_async::{AsyncPgConnection, RunQueryDsl};
|
|
|
|
use diesel_async::{AsyncPgConnection, RunQueryDsl};
|
|
|
|
use lemmy_utils::error::{LemmyError, LemmyErrorType};
|
|
|
|
use lemmy_utils::error::{LemmyError, LemmyErrorType};
|
|
|
@ -31,7 +37,9 @@ impl LocalUserLanguage {
|
|
|
|
for_local_user_id: LocalUserId,
|
|
|
|
for_local_user_id: LocalUserId,
|
|
|
|
) -> Result<Vec<LanguageId>, Error> {
|
|
|
|
) -> Result<Vec<LanguageId>, Error> {
|
|
|
|
use crate::schema::local_user_language::dsl::{
|
|
|
|
use crate::schema::local_user_language::dsl::{
|
|
|
|
language_id, local_user_id, local_user_language,
|
|
|
|
language_id,
|
|
|
|
|
|
|
|
local_user_id,
|
|
|
|
|
|
|
|
local_user_language,
|
|
|
|
};
|
|
|
|
};
|
|
|
|
let conn = &mut get_conn(pool).await?;
|
|
|
|
let conn = &mut get_conn(pool).await?;
|
|
|
|
|
|
|
|
|
|
|
@ -214,7 +222,9 @@ impl CommunityLanguage {
|
|
|
|
for_instance_id: InstanceId,
|
|
|
|
for_instance_id: InstanceId,
|
|
|
|
) -> Result<(), Error> {
|
|
|
|
) -> Result<(), Error> {
|
|
|
|
use crate::schema::{
|
|
|
|
use crate::schema::{
|
|
|
|
community::dsl as c, community_language::dsl as cl, site_language::dsl as sl,
|
|
|
|
community::dsl as c,
|
|
|
|
|
|
|
|
community_language::dsl as cl,
|
|
|
|
|
|
|
|
site_language::dsl as sl,
|
|
|
|
};
|
|
|
|
};
|
|
|
|
let community_languages: Vec<LanguageId> = cl::community_language
|
|
|
|
let community_languages: Vec<LanguageId> = cl::community_language
|
|
|
|
.left_outer_join(sl::site_language.on(cl::language_id.eq(sl::language_id)))
|
|
|
|
.left_outer_join(sl::site_language.on(cl::language_id.eq(sl::language_id)))
|
|
|
@ -380,8 +390,17 @@ mod tests {
|
|
|
|
use super::*;
|
|
|
|
use super::*;
|
|
|
|
use crate::{
|
|
|
|
use crate::{
|
|
|
|
impls::actor_language::{
|
|
|
|
impls::actor_language::{
|
|
|
|
convert_read_languages, convert_update_languages, default_post_language, get_conn,
|
|
|
|
convert_read_languages,
|
|
|
|
CommunityLanguage, DbPool, Language, LanguageId, LocalUserLanguage, QueryDsl, RunQueryDsl,
|
|
|
|
convert_update_languages,
|
|
|
|
|
|
|
|
default_post_language,
|
|
|
|
|
|
|
|
get_conn,
|
|
|
|
|
|
|
|
CommunityLanguage,
|
|
|
|
|
|
|
|
DbPool,
|
|
|
|
|
|
|
|
Language,
|
|
|
|
|
|
|
|
LanguageId,
|
|
|
|
|
|
|
|
LocalUserLanguage,
|
|
|
|
|
|
|
|
QueryDsl,
|
|
|
|
|
|
|
|
RunQueryDsl,
|
|
|
|
SiteLanguage,
|
|
|
|
SiteLanguage,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
source::{
|
|
|
|
source::{
|
|
|
|