X-Git-Url: http://these/git/?a=blobdiff_plain;f=crates%2Fdb_views%2Fsrc%2Flocal_user_view.rs;h=65d25160500e07b73426c26b976a8dcd5873886a;hb=985fe24669d3fdeecc0aa76cc74dd6570cbad5c8;hp=da735aae30bd28f2b364e3e1ce922f5d14a796c8;hpb=48f187188bce9f5fa1ac8ee09615540ee4df8540;p=lemmy.git diff --git a/crates/db_views/src/local_user_view.rs b/crates/db_views/src/local_user_view.rs index da735aae..65d25160 100644 --- a/crates/db_views/src/local_user_view.rs +++ b/crates/db_views/src/local_user_view.rs @@ -1,15 +1,12 @@ -use crate::structs::{LocalUserSettingsView, LocalUserView}; +use crate::structs::LocalUserView; use diesel::{result::Error, BoolExpressionMethods, ExpressionMethods, JoinOnDsl, QueryDsl}; use diesel_async::RunQueryDsl; use lemmy_db_schema::{ aggregates::structs::PersonAggregates, newtypes::{LocalUserId, PersonId}, schema::{local_user, person, person_aggregates}, - source::{ - local_user::{LocalUser, LocalUserSettings}, - person::{Person, PersonSafe}, - }, - traits::{ToSafe, ToSafeSettings, ViewToVec}, + source::{local_user::LocalUser, person::Person}, + traits::JoinView, utils::{functions::lower, get_conn, DbPool}, }; @@ -121,30 +118,6 @@ impl LocalUserView { counts, }) } -} - -type LocalUserSettingsViewTuple = (LocalUserSettings, PersonSafe, PersonAggregates); - -impl LocalUserSettingsView { - pub async fn read(pool: &DbPool, local_user_id: LocalUserId) -> Result { - let conn = &mut get_conn(pool).await?; - let (local_user, person, counts) = local_user::table - .find(local_user_id) - .inner_join(person::table) - .inner_join(person_aggregates::table.on(person::id.eq(person_aggregates::person_id))) - .select(( - LocalUser::safe_settings_columns_tuple(), - Person::safe_columns_tuple(), - person_aggregates::all_columns, - )) - .first::(conn) - .await?; - Ok(Self { - local_user, - person, - counts, - }) - } pub async fn list_admins_with_emails(pool: &DbPool) -> Result, Error> { let conn = &mut get_conn(pool).await?; @@ -154,27 +127,24 @@ impl LocalUserSettingsView { .inner_join(person::table) .inner_join(person_aggregates::table.on(person::id.eq(person_aggregates::person_id))) .select(( - LocalUser::safe_settings_columns_tuple(), - Person::safe_columns_tuple(), + local_user::all_columns, + person::all_columns, person_aggregates::all_columns, )) - .load::(conn) + .load::(conn) .await?; - Ok(LocalUserSettingsView::from_tuple_to_vec(res)) + Ok(res.into_iter().map(LocalUserView::from_tuple).collect()) } } -impl ViewToVec for LocalUserSettingsView { - type DbTuple = LocalUserSettingsViewTuple; - fn from_tuple_to_vec(items: Vec) -> Vec { - items - .into_iter() - .map(|a| Self { - local_user: a.0, - person: a.1, - counts: a.2, - }) - .collect::>() +impl JoinView for LocalUserView { + type JoinTuple = LocalUserViewTuple; + fn from_tuple(a: Self::JoinTuple) -> Self { + Self { + local_user: a.0, + person: a.1, + counts: a.2, + } } }