Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions errors/cloud/invalid-config.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
name = "CLOUD_INVALID_CONFIG"
description = "The given config was invalid: {error}"
http_status = 400
---

# Cloud Invalid Config

The given config was invalid.
9 changes: 9 additions & 0 deletions errors/mm/invalid-version-config.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
name = "MATCHMAKER_INVALID_VERSION_CONFIG"
description = "The given version config was invalid: {error}"
http_status = 400
---

# Matchmaker Invalid Version Config

The given version config was invalid.
10 changes: 10 additions & 0 deletions errors/upload/too-large.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
name = "UPLOAD_TOO_LARGE"
description = "Upload too large (maximum size {max})."
description_basic = "Upload too large."
http_status = 400
---

# Upload Too Large

The given upload was too large.
2 changes: 1 addition & 1 deletion lib/bolt/core/src/tasks/check.rs
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ async fn check_svcs(
.arg("clippy::wildcard_imports")
.arg("-A")
.arg("clippy::module_name_repetitions")
.arg("-A")
.arg("-W")
.arg("clippy::cast_possible_truncation")
.arg("-A")
.arg("clippy::missing_errors_doc")
Expand Down
5 changes: 4 additions & 1 deletion lib/convert/src/convert/chat.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
use std::convert::TryInto;

use rivet_api::models;
use rivet_operation::prelude::*;
use types::rivet::backend::{self, pkg::*};
Expand Down Expand Up @@ -270,7 +272,8 @@ pub fn thread(
.iter()
.find(|t| t.thread_id == thread.thread_id)
.map(|t| t.unread_count)
.unwrap_or_default() as i64,
.unwrap_or_default()
.try_into()?,
external: Box::new(models::ChatThreadExternalLinks {
chat: util::route::thread(&thread_id),
}),
Expand Down
4 changes: 3 additions & 1 deletion lib/convert/src/convert/group.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
use std::convert::TryInto;

use rivet_api::models;
use rivet_operation::prelude::*;
use types::rivet::backend::{self, pkg::*};
Expand Down Expand Up @@ -57,7 +59,7 @@ pub fn summary(
is_current_identity_member,
publicity: internal_unwrap_owned!(backend::team::Publicity::from_i32(team.publicity))
.api_into(),
member_count: member_count as i32,
member_count: member_count.try_into()?,
owner_identity_id: owner_user_id,
is_developer,
})
Expand Down
4 changes: 3 additions & 1 deletion lib/convert/src/convert/party.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
use std::convert::TryInto;

use rivet_api::models;
use rivet_operation::prelude::*;
use types::rivet::backend;
Expand Down Expand Up @@ -42,7 +44,7 @@ pub fn summary(
Ok(models::PartySummary {
party_id,
create_ts: util::timestamp::to_string(party.create_ts)?,
party_size: party.party_size as i32,
party_size: party.party_size.try_into()?,
activity: Box::new(convert::party::activity(party.state.as_ref(), games)?),
// TODO: Only party leader should be able to see this
publicity: Box::new(models::PartyPublicity {
Expand Down
64 changes: 41 additions & 23 deletions lib/convert/src/impls/cloud/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@ pub fn analytics_lobby_summary_from_lobby(
is_idle: player_count.total_player_count == 0,
is_closed: lobby.is_closed,
is_outdated,
max_players_normal: lobby.max_players_normal as i32,
max_players_direct: lobby.max_players_direct as i32,
max_players_party: lobby.max_players_party as i32,
total_player_count: player_count.total_player_count as i32,
registered_player_count: player_count.registered_player_count as i32,
max_players_normal: lobby.max_players_normal.try_into()?,
max_players_direct: lobby.max_players_direct.try_into()?,
max_players_party: lobby.max_players_party.try_into()?,
total_player_count: player_count.total_player_count.try_into()?,
registered_player_count: player_count.registered_player_count.try_into()?,
})
}

Expand Down Expand Up @@ -98,15 +98,27 @@ impl ApiTryFrom<perf::SvcPerf> for models::SvcPerf {
}
}

impl ApiFrom<job_run::metrics_log::response::Metrics> for models::SvcMetrics {
fn api_from(value: job_run::metrics_log::response::Metrics) -> models::SvcMetrics {
models::SvcMetrics {
impl ApiTryFrom<job_run::metrics_log::response::Metrics> for models::SvcMetrics {
type Error = GlobalError;

fn try_from(
value: job_run::metrics_log::response::Metrics,
) -> GlobalResult<models::SvcMetrics> {
Ok(models::SvcMetrics {
job: value.job,
cpu: value.cpu,
memory: value.memory.into_iter().map(|v| v as i64).collect(),
memory_max: value.memory_max.into_iter().map(|v| v as i64).collect(),
allocated_memory: value.allocated_memory as i64,
}
memory: value
.memory
.into_iter()
.map(|v| v.try_into())
.collect::<Result<Vec<_>, _>>()?,
memory_max: value
.memory_max
.into_iter()
.map(|v| v.try_into())
.collect::<Result<Vec<_>, _>>()?,
allocated_memory: value.allocated_memory.try_into()?,
})
}
}

Expand Down Expand Up @@ -143,7 +155,11 @@ impl ApiTryFrom<models::UploadPrepareFile> for backend::upload::PrepareFile {
type Error = GlobalError;

fn try_from(value: models::UploadPrepareFile) -> GlobalResult<Self> {
internal_assert!(value.content_length >= 0);
assert_with!(
value.content_length >= 0,
MATCHMAKER_INVALID_VERSION_CONFIG,
error = "`file.content_length` out of bounds"
);

Ok(backend::upload::PrepareFile {
path: value.path,
Expand Down Expand Up @@ -219,17 +235,19 @@ mod openapi {
}
}

impl ApiFrom<backend::region::Tier> for models::RegionTier {
fn api_from(value: backend::region::Tier) -> models::RegionTier {
models::RegionTier {
impl ApiTryFrom<backend::region::Tier> for models::RegionTier {
type Error = GlobalError;

fn try_from(value: backend::region::Tier) -> GlobalResult<models::RegionTier> {
Ok(models::RegionTier {
tier_name_id: value.tier_name_id.to_owned(),
rivet_cores_numerator: value.rivet_cores_numerator as i32,
rivet_cores_denominator: value.rivet_cores_denominator as i32,
cpu: value.cpu as i64,
memory: value.memory as i64,
disk: value.disk as i64,
bandwidth: value.bandwidth as i64,
}
rivet_cores_numerator: value.rivet_cores_numerator.try_into()?,
rivet_cores_denominator: value.rivet_cores_denominator.try_into()?,
cpu: value.cpu.try_into()?,
memory: value.memory.try_into()?,
disk: value.disk.try_into()?,
bandwidth: value.bandwidth.try_into()?,
})
}
}

Expand Down
14 changes: 8 additions & 6 deletions lib/convert/src/impls/cloud/namespace/matchmaker.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
use std::convert::TryInto;

use proto::backend;
use rivet_api::models;
use rivet_operation::prelude::*;
Expand All @@ -9,12 +11,12 @@ impl ApiTryFrom<backend::matchmaker::NamespaceConfig> for models::CloudMatchmake

fn try_from(value: backend::matchmaker::NamespaceConfig) -> GlobalResult<Self> {
Ok(models::CloudMatchmakerNamespaceConfig {
lobby_count_max: value.lobby_count_max as i32,
max_players_per_client: value.max_players_per_client as i32,
max_players_per_client_vpn: value.max_players_per_client_vpn as i32,
max_players_per_client_proxy: value.max_players_per_client_proxy as i32,
max_players_per_client_tor: value.max_players_per_client_tor as i32,
max_players_per_client_hosting: value.max_players_per_client_hosting as i32,
lobby_count_max: value.lobby_count_max.try_into()?,
max_players_per_client: value.max_players_per_client.try_into()?,
max_players_per_client_vpn: value.max_players_per_client_vpn.try_into()?,
max_players_per_client_proxy: value.max_players_per_client_proxy.try_into()?,
max_players_per_client_tor: value.max_players_per_client_tor.try_into()?,
max_players_per_client_hosting: value.max_players_per_client_hosting.try_into()?,
})
}
}
Loading