Skip to content

Commit 7656932

Browse files
committed
* Replace all uses of axum::Json with wrapped Json type (this allowing api access to broken clients that do not set Content-Type correctly)
1 parent cec5a1a commit 7656932

File tree

9 files changed

+21
-15
lines changed

9 files changed

+21
-15
lines changed

src/routes/api.rs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use axum::{
44
extract::{Path, State},
55
response::IntoResponse,
66
routing::{get, post, put},
7-
Json, Router,
7+
Router,
88
};
99

1010
use bytes::Bytes;
@@ -13,19 +13,17 @@ use serde_json::{json, Value};
1313
use tokio::sync::MutexGuard;
1414
use uuid::Uuid;
1515

16+
use crate::error::{ApiError, ApiResult};
1617
use crate::hue::api::{Device, GroupedLight, Light, RType, ResourceLink, Room, Scene, V1Reply};
1718
use crate::hue::legacy_api::{
18-
ApiGroup, ApiLight, ApiLightStateUpdate, ApiResourceType, ApiScene, ApiUserConfig,
19-
Capabilities, HueResult, NewUser, NewUserReply,
19+
ApiGroup, ApiGroupActionUpdate, ApiLight, ApiLightStateUpdate, ApiResourceType, ApiScene,
20+
ApiUserConfig, Capabilities, HueResult, NewUser, NewUserReply,
2021
};
2122
use crate::resource::Resources;
23+
use crate::routes::extractor::Json;
2224
use crate::server::appstate::AppState;
2325
use crate::z2m::request::ClientRequest;
2426
use crate::z2m::update::DeviceUpdate;
25-
use crate::{
26-
error::{ApiError, ApiResult},
27-
hue::legacy_api::ApiGroupActionUpdate,
28-
};
2927

3028
async fn get_api_config(State(state): State<AppState>) -> impl IntoResponse {
3129
Json(state.api_short_config().await)

src/routes/clip/device.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
use axum::{
22
extract::{Path, State},
33
routing::put,
4-
Json, Router,
4+
Router,
55
};
66
use serde_json::Value;
77
use uuid::Uuid;
88

99
use crate::hue::api::{Device, DeviceUpdate, RType, V2Reply};
1010
use crate::routes::clip::ApiV2Result;
11+
use crate::routes::extractor::Json;
1112
use crate::server::appstate::AppState;
1213

1314
async fn put_device(

src/routes/clip/generic.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@ use axum::{
22
extract::{Path, State},
33
response::IntoResponse,
44
routing::{delete, get, post, put},
5-
Json, Router,
5+
Router,
66
};
77
use serde_json::Value;
88
use uuid::Uuid;
99

1010
use crate::error::ApiError;
1111
use crate::hue::api::{RType, Resource, ResourceLink, V2Reply};
1212
use crate::routes::clip::ApiV2Result;
13+
use crate::routes::extractor::Json;
1314
use crate::server::appstate::AppState;
1415

1516
async fn get_root(State(state): State<AppState>) -> impl IntoResponse {

src/routes/clip/grouped_light.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
use axum::{
22
extract::{Path, State},
33
routing::put,
4-
Json, Router,
4+
Router,
55
};
66
use serde_json::Value;
77
use uuid::Uuid;
88

99
use crate::hue::api::{GroupedLight, GroupedLightUpdate, RType, V2Reply};
1010
use crate::routes::clip::ApiV2Result;
11+
use crate::routes::extractor::Json;
1112
use crate::server::appstate::AppState;
1213
use crate::z2m::request::ClientRequest;
1314
use crate::z2m::update::DeviceUpdate;

src/routes/clip/light.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
use axum::{
22
extract::{Path, State},
33
routing::put,
4-
Json, Router,
4+
Router,
55
};
66
use serde_json::Value;
77
use uuid::Uuid;
88

99
use crate::hue::api::{Light, LightUpdate, RType, V2Reply};
1010
use crate::routes::clip::ApiV2Result;
11+
use crate::routes::extractor::Json;
1112
use crate::server::appstate::AppState;
1213
use crate::z2m::request::ClientRequest;
1314
use crate::z2m::update::DeviceUpdate;

src/routes/clip/mod.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@ pub mod grouped_light;
44
pub mod light;
55
pub mod scene;
66

7-
use axum::{Json, Router};
7+
use axum::Router;
88
use serde::Serialize;
99
use serde_json::Value;
1010

1111
use crate::error::ApiResult;
1212
use crate::hue::api::V2Reply;
13+
use crate::routes::extractor::Json;
1314
use crate::server::appstate::AppState;
1415

1516
type ApiV2Result = ApiResult<Json<V2Reply<Value>>>;

src/routes/clip/scene.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use axum::{
22
extract::{Path, State},
33
response::IntoResponse,
44
routing::{delete, post, put},
5-
Json, Router,
5+
Router,
66
};
77
use serde_json::Value;
88
use uuid::Uuid;
@@ -13,6 +13,7 @@ use crate::hue::api::{
1313
};
1414
use crate::model::state::AuxData;
1515
use crate::routes::clip::ApiV2Result;
16+
use crate::routes::extractor::Json;
1617
use crate::server::appstate::AppState;
1718
use crate::z2m::request::ClientRequest;
1819

src/routes/licenses.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
use axum::response::IntoResponse;
22
use axum::routing::get;
3-
use axum::{Json, Router};
3+
use axum::Router;
44
use itertools::Itertools;
55
use serde_json::{json, Value};
66

7+
use crate::routes::extractor::Json;
78
use crate::server::appstate::AppState;
89

910
async fn packages() -> Json<Value> {

src/routes/mod.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
use axum::response::{IntoResponse, Response};
2-
use axum::{Json, Router};
2+
use axum::Router;
33
use hyper::StatusCode;
44
use serde_json::Value;
55

66
use crate::error::ApiError;
77
use crate::hue::api::V2Reply;
8+
use crate::routes::extractor::Json;
89
use crate::server::appstate::AppState;
910

1011
pub mod api;

0 commit comments

Comments
 (0)