diff --git a/src/objects/member.rs b/src/objects/member.rs index 1247ea2..0bba11b 100644 --- a/src/objects/member.rs +++ b/src/objects/member.rs @@ -167,6 +167,11 @@ impl Member { .and(fdsl::uuid2.eq(users::uuid)) .or(fdsl::uuid2.eq(me.uuid).and(fdsl::uuid1.eq(users::uuid)))), ) + .order_by(coalesce( + dsl::nickname, + users::display_name, + users::username, + )) .select(( MemberBuilder::as_select(), UserBuilder::as_select(), @@ -201,6 +206,11 @@ impl Member { .and(fdsl::uuid2.eq(users::uuid)) .or(fdsl::uuid2.eq(me.uuid).and(fdsl::uuid1.eq(users::uuid)))), ) + .order_by(coalesce( + dsl::nickname, + users::display_name, + users::username, + )) .select(( MemberBuilder::as_select(), UserBuilder::as_select(), @@ -212,6 +222,11 @@ impl Member { (member, user) = dsl::guild_members .filter(dsl::uuid.eq(uuid)) .inner_join(users::table) + .order_by(coalesce( + dsl::nickname, + users::display_name, + users::username, + )) .select((MemberBuilder::as_select(), UserBuilder::as_select())) .get_result(conn) .await?; @@ -268,7 +283,13 @@ impl Member { .await, )?; - let pages = Member::count(conn, guild_uuid).await? as f32 / per_page as f32; + let member_count: i64 = dsl::guild_members + .filter(dsl::guild_uuid.eq(guild_uuid)) + .count() + .get_result(conn) + .await?; + + let pages = member_count as f32 / per_page as f32; let mut members = Pagination:: { objects: Vec::with_capacity(member_builders.len()),