1
0
mirror of https://git.ngram.ca/OpenJam/rc-servers synced 2026-08-23 23:08:52 +00:00

Fix rendering error in user dashboard on serious databases

This commit is contained in:
NG (Graham)
2026-07-26 17:48:01 -04:00
parent 056d127960
commit 95bbd429de
4 changed files with 30 additions and 30 deletions

42
Cargo.lock generated
View File

@@ -3078,7 +3078,7 @@ checksum = "059c95245738cdc7b40078cdd51a23200252a4c0a0a6dd005136152b3f467a4a"
[[package]]
name = "oj_cdn"
version = "1.3.0"
version = "1.3.1"
dependencies = [
"actix-files",
"actix-web",
@@ -3107,7 +3107,7 @@ dependencies = [
[[package]]
name = "oj_polariton_auth"
version = "1.3.0"
version = "1.3.1"
dependencies = [
"log",
"num",
@@ -3119,7 +3119,7 @@ dependencies = [
[[package]]
name = "oj_rc_auth"
version = "1.3.0"
version = "1.3.1"
dependencies = [
"actix-files",
"actix-web",
@@ -3144,7 +3144,7 @@ dependencies = [
[[package]]
name = "oj_rc_chat"
version = "1.3.0"
version = "1.3.1"
dependencies = [
"clap",
"env_logger",
@@ -3157,7 +3157,7 @@ dependencies = [
[[package]]
name = "oj_rc_chat_room"
version = "1.3.0"
version = "1.3.1"
dependencies = [
"async-trait",
"chrono",
@@ -3180,7 +3180,7 @@ dependencies = [
[[package]]
name = "oj_rc_core"
version = "1.3.0"
version = "1.3.1"
dependencies = [
"argon2",
"async-trait",
@@ -3212,7 +3212,7 @@ dependencies = [
[[package]]
name = "oj_rc_database"
version = "1.3.0"
version = "1.3.1"
dependencies = [
"async-trait",
"itertools 0.14.0",
@@ -3225,7 +3225,7 @@ dependencies = [
[[package]]
name = "oj_rc_factory"
version = "1.3.0"
version = "1.3.1"
dependencies = [
"async-trait",
"base64 0.22.1",
@@ -3240,7 +3240,7 @@ dependencies = [
[[package]]
name = "oj_rc_factory_web"
version = "1.3.0"
version = "1.3.1"
dependencies = [
"actix-files",
"actix-web",
@@ -3259,7 +3259,7 @@ dependencies = [
[[package]]
name = "oj_rc_lobby"
version = "1.3.0"
version = "1.3.1"
dependencies = [
"clap",
"env_logger",
@@ -3272,7 +3272,7 @@ dependencies = [
[[package]]
name = "oj_rc_lobby_room"
version = "1.3.0"
version = "1.3.1"
dependencies = [
"async-trait",
"chrono",
@@ -3293,7 +3293,7 @@ dependencies = [
[[package]]
name = "oj_rc_microtransactions"
version = "1.3.0"
version = "1.3.1"
dependencies = [
"actix-web",
"clap",
@@ -3307,7 +3307,7 @@ dependencies = [
[[package]]
name = "oj_rc_multiplayer"
version = "1.3.0"
version = "1.3.1"
dependencies = [
"async-trait",
"atomic_float",
@@ -3330,7 +3330,7 @@ dependencies = [
[[package]]
name = "oj_rc_plugins"
version = "1.3.0"
version = "1.3.1"
dependencies = [
"libloading",
"log",
@@ -3338,7 +3338,7 @@ dependencies = [
[[package]]
name = "oj_rc_services"
version = "1.3.0"
version = "1.3.1"
dependencies = [
"clap",
"env_logger",
@@ -3351,7 +3351,7 @@ dependencies = [
[[package]]
name = "oj_rc_services_room"
version = "1.3.0"
version = "1.3.1"
dependencies = [
"async-trait",
"chrono",
@@ -3377,7 +3377,7 @@ dependencies = [
[[package]]
name = "oj_rc_singleplayer"
version = "1.3.0"
version = "1.3.1"
dependencies = [
"clap",
"env_logger",
@@ -3390,7 +3390,7 @@ dependencies = [
[[package]]
name = "oj_rc_singleplayer_room"
version = "1.3.0"
version = "1.3.1"
dependencies = [
"async-trait",
"chrono",
@@ -3408,7 +3408,7 @@ dependencies = [
[[package]]
name = "oj_rc_social"
version = "1.3.0"
version = "1.3.1"
dependencies = [
"clap",
"env_logger",
@@ -3421,7 +3421,7 @@ dependencies = [
[[package]]
name = "oj_rc_social_room"
version = "1.3.0"
version = "1.3.1"
dependencies = [
"async-trait",
"chrono",
@@ -3439,7 +3439,7 @@ dependencies = [
[[package]]
name = "oj_rc_society"
version = "1.3.0"
version = "1.3.1"
dependencies = [
"actix-files",
"actix-identity",

View File

@@ -1,5 +1,5 @@
[workspace.package]
version = "1.3.0"
version = "1.3.1"
edition = "2024"
repository = "https://git.ngram.ca/OpenJam/rc-servers"
license = "GPL-3.0-only"

View File

@@ -110,7 +110,7 @@ impl super::WebUser for super::account_json::UserData {
async fn garage_stats(&self) -> Result<super::GarageWebStats, Box<dyn std::error::Error>> {
let vehicle_count = self.db.garage_count_by_user_id(self.account.id).await?;
let regular_count = self.db.garage_count_by_user_id_between(self.account.id, 2_000, 1).await?;
let mega_count = self.db.garage_count_by_user_id_between(self.account.id, u32::MAX as u64, 2_000).await?;
let mega_count = self.db.garage_count_by_user_id_between(self.account.id, u32::MAX, 2_000).await?;
let empty_count = self.db.garage_count_by_user_id_between(self.account.id, 0, 0).await?;
let factory_count = self.db.garage_count_by_user_id_factory(self.account.id).await?;
let storage_size = self.db.garage_storage_by_user_id(self.account.id).await?;
@@ -121,7 +121,7 @@ impl super::WebUser for super::account_json::UserData {
mega_vehicle_total: mega_count,
empty_vehicle_total: empty_count,
factory_vehicle_total: factory_count,
storage_bytes_total: storage_size,
storage_bytes_total: storage_size.map(|size| size.try_into().unwrap_or(0)),
selected_garage: selected_garage_slot,
})
}

View File

@@ -235,11 +235,11 @@ impl Database {
.await
}
pub async fn garage_count_by_user_id_between(&self, user_id: i32, max_cpu: u64, min_cpu: u64) -> Result<u64, sea_orm::DbErr> {
pub async fn garage_count_by_user_id_between(&self, user_id: i32, max_cpu: u32, min_cpu: u32) -> Result<u64, sea_orm::DbErr> {
crate::schema::garage::Entity::find()
.filter(crate::schema::garage::Column::UserId.eq(user_id))
.filter(crate::schema::garage::Column::TotalRobotCpu.lte(max_cpu))
.filter(crate::schema::garage::Column::TotalRobotCpu.gte(min_cpu))
.filter(crate::schema::garage::Column::TotalRobotCpu.lte(max_cpu as i32))
.filter(crate::schema::garage::Column::TotalRobotCpu.gte(min_cpu as i32))
.count(self.orm.as_ref())
.await
}
@@ -252,7 +252,7 @@ impl Database {
.await
}
pub async fn garage_storage_by_user_id(&self, user_id: i32) -> Result<Option<u64>, sea_orm::DbErr> {
pub async fn garage_storage_by_user_id(&self, user_id: i32) -> Result<Option<i32>, sea_orm::DbErr> {
let size = match self.orm.as_ref() {
// TODO implement support in other databases
sea_orm::DatabaseConnection::SqlxPostgresPoolConnection(_) => {
@@ -276,7 +276,7 @@ impl Database {
.arg(sea_orm::sea_query::Expr::col((crate::schema::garage::Entity, sea_orm::sea_query::Asterisk)))
, "column")
.filter(crate::schema::garage::Column::UserId.eq(user_id))
.into_model::<crate::schema::common_query::SingleColumn<u64>>()
.into_model::<crate::schema::common_query::SingleColumn<i32>>()
.one(self.orm.as_ref())
.await?;
result.map(|x| x.column)
@@ -456,7 +456,7 @@ impl Database {
pub async fn count_sanctions_by_user_id_and_ack(&self, user_id: i32, is_acked: bool) -> Result<u64, sea_orm::DbErr> {
crate::schema::sanction::Entity::find()
.filter(crate::schema::sanction::Column::UserId.eq(user_id))
.filter(crate::schema::sanction::Column::Acknowledged.eq(is_acked))
.filter(if is_acked { crate::schema::sanction::Column::Acknowledged.is_not_null() } else { crate::schema::sanction::Column::Acknowledged.is_null() })
//.order_by_asc(crate::schema::sanction::Column::CreationTime)
.count(self.orm.as_ref())
.await