mirror of https://github.com/LemmyNet/lemmy.git
Better call sites.
parent
e19ca1ec6e
commit
79593fa874
|
@ -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 }))
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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> {
|
||||||
|
|
Loading…
Reference in New Issue