mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-17 21:15:32 +09:00
fix(admin): require paired voice server coordinates (#2544)
This commit is contained in:
1 parent
f8947adf62
commit
43e420b0ab
1 file changed
+13
@@ -102,6 +102,7 @@ impl AdminApiClient {
|
|||||||
params: &serde_json::Value,
|
params: &serde_json::Value,
|
||||||
) -> ApiResult<CreateVoiceServerResponse> {
|
) -> ApiResult<CreateVoiceServerResponse> {
|
||||||
let region_id = required_field(params, "region_id")?;
|
let region_id = required_field(params, "region_id")?;
|
||||||
|
paired_coordinates(params)?;
|
||||||
let body =
|
let body =
|
||||||
serde_json::from_value::<generated_types::CreateVoiceServerRequest>(params.clone())
|
serde_json::from_value::<generated_types::CreateVoiceServerRequest>(params.clone())
|
||||||
.map_err(|e| ApiError::Parse(e.to_string()))?;
|
.map_err(|e| ApiError::Parse(e.to_string()))?;
|
||||||
@@ -119,6 +120,7 @@ impl AdminApiClient {
|
|||||||
) -> ApiResult<UpdateVoiceServerResponse> {
|
) -> ApiResult<UpdateVoiceServerResponse> {
|
||||||
let region_id = required_field(params, "region_id")?;
|
let region_id = required_field(params, "region_id")?;
|
||||||
let server_id = required_field(params, "server_id")?;
|
let server_id = required_field(params, "server_id")?;
|
||||||
|
paired_coordinates(params)?;
|
||||||
let body =
|
let body =
|
||||||
serde_json::from_value::<generated_types::UpdateVoiceServerRequest>(params.clone())
|
serde_json::from_value::<generated_types::UpdateVoiceServerRequest>(params.clone())
|
||||||
.map_err(|e| ApiError::Parse(e.to_string()))?;
|
.map_err(|e| ApiError::Parse(e.to_string()))?;
|
||||||
@@ -148,6 +150,17 @@ fn bool_param(value: bool) -> &'static str {
|
|||||||
if value { "true" } else { "false" }
|
if value { "true" } else { "false" }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn paired_coordinates(params: &serde_json::Value) -> ApiResult<()> {
|
||||||
|
let has_coordinate = |field: &str| params.get(field).is_some_and(|value| !value.is_null());
|
||||||
|
if has_coordinate("latitude") == has_coordinate("longitude") {
|
||||||
|
Ok(())
|
||||||
|
} else {
|
||||||
|
Err(ApiError::Parse(
|
||||||
|
"latitude and longitude must both be set or both be left empty".to_owned(),
|
||||||
|
))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fn required_field(params: &serde_json::Value, field: &str) -> ApiResult<String> {
|
fn required_field(params: &serde_json::Value, field: &str) -> ApiResult<String> {
|
||||||
params
|
params
|
||||||
.get(field)
|
.get(field)
|
||||||
|
|||||||
Reference in new issue
Block a user