Better call sites.

delete-old-avatar
Dessalines 2024-03-14 15:39:12 -04:00
parent e19ca1ec6e
commit 79593fa874
3 changed files with 34 additions and 31 deletions

View File

@ -15,12 +15,11 @@ pub async fn list_media(
) -> Result<Json<ListMediaResponse>, LemmyError> { ) -> Result<Json<ListMediaResponse>, LemmyError> {
let page = data.page; let page = data.page;
let limit = data.limit; let limit = data.limit;
let images = LocalImage::get_all_by_local_user_id( let images = LocalImage::get_all_paged_by_local_user_id(
&mut context.pool(), &mut context.pool(),
local_user_view.local_user.id, local_user_view.local_user.id,
page, page,
limit, limit,
false,
) )
.await?; .await?;
Ok(Json(ListMediaResponse { images })) Ok(Json(ListMediaResponse { images }))

View File

@ -31,14 +31,8 @@ pub async fn purge_person(
// Read the local user to get their images, and delete them // Read the local user to get their images, and delete them
if let Ok(local_user) = LocalUserView::read_person(&mut context.pool(), data.person_id).await { if let Ok(local_user) = LocalUserView::read_person(&mut context.pool(), data.person_id).await {
let pictrs_uploads = LocalImage::get_all_by_local_user_id( let pictrs_uploads =
&mut context.pool(), LocalImage::get_all_by_local_user_id(&mut context.pool(), local_user.local_user.id).await?;
local_user.local_user.id,
None,
None,
true,
)
.await?;
for upload in pictrs_uploads { for upload in pictrs_uploads {
delete_image_from_pictrs(&upload.pictrs_alias, &upload.pictrs_delete_token, &context) delete_image_from_pictrs(&upload.pictrs_alias, &upload.pictrs_delete_token, &context)

View File

@ -25,26 +25,20 @@ impl LocalImage {
.await .await
} }
pub async fn get_all_by_local_user_id( pub async fn get_all_paged_by_local_user_id(
pool: &mut DbPool<'_>, pool: &mut DbPool<'_>,
user_id: LocalUserId, user_id: LocalUserId,
page: Option<i64>, page: Option<i64>,
limit: Option<i64>, limit: Option<i64>,
ignore_page_limits: bool,
) -> Result<Vec<Self>, Error> { ) -> Result<Vec<Self>, Error> {
let conn = &mut get_conn(pool).await?; Self::get_all_helper(pool, Some(user_id), page, limit, false).await
let mut query = local_image::table
.filter(local_image::local_user_id.eq(user_id))
.select(local_image::all_columns)
.order_by(local_image::published.desc())
.into_boxed();
if !ignore_page_limits {
let (limit, offset) = limit_and_offset(page, limit)?;
query = query.limit(limit).offset(offset);
} }
query.load::<LocalImage>(conn).await pub async fn get_all_by_local_user_id(
pool: &mut DbPool<'_>,
user_id: LocalUserId,
) -> Result<Vec<Self>, Error> {
Self::get_all_helper(pool, Some(user_id), None, None, true).await
} }
pub async fn get_all( pub async fn get_all(
@ -52,16 +46,32 @@ impl LocalImage {
page: Option<i64>, page: Option<i64>,
limit: Option<i64>, limit: Option<i64>,
) -> Result<Vec<Self>, Error> { ) -> Result<Vec<Self>, Error> {
let conn = &mut get_conn(pool).await?; Self::get_all_helper(pool, None, page, limit, false).await
let (limit, offset) = limit_and_offset(page, limit)?; }
local_image::table async fn get_all_helper(
pool: &mut DbPool<'_>,
user_id: Option<LocalUserId>,
page: Option<i64>,
limit: Option<i64>,
ignore_page_limits: bool,
) -> Result<Vec<Self>, Error> {
let conn = &mut get_conn(pool).await?;
let mut query = local_image::table
.select(local_image::all_columns) .select(local_image::all_columns)
.order_by(local_image::published.desc()) .order_by(local_image::published.desc())
.limit(limit) .into_boxed();
.offset(offset)
.load::<LocalImage>(conn) if let Some(user_id) = user_id {
.await query = query.filter(local_image::local_user_id.eq(user_id))
}
if !ignore_page_limits {
let (limit, offset) = limit_and_offset(page, limit)?;
query = query.limit(limit).offset(offset);
}
query.load::<LocalImage>(conn).await
} }
pub async fn delete_by_alias(pool: &mut DbPool<'_>, alias: &str) -> Result<usize, Error> { pub async fn delete_by_alias(pool: &mut DbPool<'_>, alias: &str) -> Result<usize, Error> {