fix: join with actors and select id
This commit is contained in:
parent
bc747af055
commit
caf990f291
1 changed files with 10 additions and 3 deletions
|
@ -1,5 +1,5 @@
|
||||||
use axum::extract::{Path, Query, State};
|
use axum::extract::{Path, Query, State};
|
||||||
use sea_orm::{ColumnTrait, Condition, EntityTrait, QueryFilter, QuerySelect, SelectColumns};
|
use sea_orm::{ColumnTrait, Condition, EntityTrait, QueryFilter, QuerySelect, SelectColumns, RelationTrait};
|
||||||
|
|
||||||
use upub::{model, Context};
|
use upub::{model, Context};
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@ pub async fn page<const OUTGOING: bool>(
|
||||||
use upub::model::relation::Column::{Follower, Following, FollowerInstance, FollowingInstance};
|
use upub::model::relation::Column::{Follower, Following, FollowerInstance, FollowingInstance};
|
||||||
let follow___ = if OUTGOING { "following" } else { "followers" };
|
let follow___ = if OUTGOING { "following" } else { "followers" };
|
||||||
|
|
||||||
let limit = page.batch.unwrap_or(20).min(50);
|
let limit = page.batch.unwrap_or(100).min(500);
|
||||||
let offset = page.offset.unwrap_or(0);
|
let offset = page.offset.unwrap_or(0);
|
||||||
|
|
||||||
let (user, config) = model::actor::Entity::find_by_ap_id(&ctx.uid(&id))
|
let (user, config) = model::actor::Entity::find_by_ap_id(&ctx.uid(&id))
|
||||||
|
@ -98,10 +98,17 @@ pub async fn page<const OUTGOING: bool>(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let join = if OUTGOING {
|
||||||
|
model::relation::Relation::ActorsFollowing.def()
|
||||||
|
} else {
|
||||||
|
model::relation::Relation::ActorsFollower.def()
|
||||||
|
};
|
||||||
|
|
||||||
let following = model::relation::Entity::find()
|
let following = model::relation::Entity::find()
|
||||||
.filter(filter)
|
.filter(filter)
|
||||||
|
.join(sea_orm::JoinType::LeftJoin, join)
|
||||||
.select_only()
|
.select_only()
|
||||||
.select_column(if OUTGOING { Following } else { Follower })
|
.select_column(model::actor::Column::Id)
|
||||||
.limit(limit)
|
.limit(limit)
|
||||||
.offset(page.offset.unwrap_or(0))
|
.offset(page.offset.unwrap_or(0))
|
||||||
.into_tuple::<String>()
|
.into_tuple::<String>()
|
||||||
|
|
Loading…
Reference in a new issue