Normalize serde_json imports
This commit is contained in:
parent
f4b9841590
commit
a761d59a4c
@ -30,6 +30,7 @@ Improvements:
|
|||||||
* Add types for User-Interactive Authentication API: `r0::uiaa::{AuthFlow, UiaaInfo, UiaaResponse}`
|
* Add types for User-Interactive Authentication API: `r0::uiaa::{AuthFlow, UiaaInfo, UiaaResponse}`
|
||||||
* Add missing serde attributes to `get_content_thumbnail` query parameters
|
* Add missing serde attributes to `get_content_thumbnail` query parameters
|
||||||
* Add missing `state` response field to `r0::message::get_message_events`
|
* Add missing `state` response field to `r0::message::get_message_events`
|
||||||
|
* Normalize `serde_json` imports
|
||||||
|
|
||||||
# 0.7.2
|
# 0.7.2
|
||||||
|
|
||||||
|
@ -99,6 +99,23 @@ use std::convert::TryFrom;
|
|||||||
use std::fmt::{Debug, Display, Error as FmtError, Formatter};
|
use std::fmt::{Debug, Display, Error as FmtError, Formatter};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Serde Imports
|
||||||
|
|
||||||
|
When importing methods and types from `serde_json`, methods should be such as
|
||||||
|
`serde_json::{from,to}_{slice,string,value,vec}` should be imported as
|
||||||
|
`{from,to}_json_{slice,string,value,vec}`.
|
||||||
|
|
||||||
|
For example:
|
||||||
|
|
||||||
|
```rust
|
||||||
|
use serde_json::{
|
||||||
|
from_value as from_json_value,
|
||||||
|
to_str as to_json_str,
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
Also, `serde_json::Value` should be imported as `JsonValue`.
|
||||||
|
|
||||||
### Code Formatting and Linting
|
### Code Formatting and Linting
|
||||||
|
|
||||||
Use `rustfmt` to format your code and `clippy` to lint your code. Before
|
Use `rustfmt` to format your code and `clippy` to lint your code. Before
|
||||||
|
@ -4,6 +4,7 @@ use std::fmt::{self, Display, Formatter};
|
|||||||
|
|
||||||
use ruma_api::{error::ResponseDeserializationError, EndpointError};
|
use ruma_api::{error::ResponseDeserializationError, EndpointError};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
use serde_json::{from_slice as from_json_slice, to_vec as to_json_vec};
|
||||||
use strum::{AsRefStr, Display, EnumString};
|
use strum::{AsRefStr, Display, EnumString};
|
||||||
|
|
||||||
/// An enum for the error kind. Items may contain additional information.
|
/// An enum for the error kind. Items may contain additional information.
|
||||||
@ -160,7 +161,7 @@ impl EndpointError for Error {
|
|||||||
fn try_from_response(
|
fn try_from_response(
|
||||||
response: http::Response<Vec<u8>>,
|
response: http::Response<Vec<u8>>,
|
||||||
) -> Result<Self, ResponseDeserializationError> {
|
) -> Result<Self, ResponseDeserializationError> {
|
||||||
match serde_json::from_slice::<ErrorBody>(response.body()) {
|
match from_json_slice::<ErrorBody>(response.body()) {
|
||||||
Ok(error_body) => Ok(error_body.into_error(response.status())),
|
Ok(error_body) => Ok(error_body.into_error(response.status())),
|
||||||
Err(de_error) => Err(ResponseDeserializationError::new(de_error, response)),
|
Err(de_error) => Err(ResponseDeserializationError::new(de_error, response)),
|
||||||
}
|
}
|
||||||
@ -206,7 +207,7 @@ impl From<Error> for http::Response<Vec<u8>> {
|
|||||||
http::Response::builder()
|
http::Response::builder()
|
||||||
.header(http::header::CONTENT_TYPE, "application/json")
|
.header(http::header::CONTENT_TYPE, "application/json")
|
||||||
.status(error.status_code)
|
.status(error.status_code)
|
||||||
.body(serde_json::to_vec(&ErrorBody::from(error)).unwrap())
|
.body(to_json_vec(&ErrorBody::from(error)).unwrap())
|
||||||
.unwrap()
|
.unwrap()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use serde_json::Value;
|
use serde_json::Value as JsonValue;
|
||||||
use std::collections::BTreeMap;
|
use std::collections::BTreeMap;
|
||||||
|
|
||||||
ruma_api! {
|
ruma_api! {
|
||||||
@ -39,7 +39,7 @@ pub struct Capabilities {
|
|||||||
/// Any other custom capabilities that the server supports outside of the specification,
|
/// Any other custom capabilities that the server supports outside of the specification,
|
||||||
/// labeled using the Java package naming convention and stored as arbitrary JSON values.
|
/// labeled using the Java package naming convention and stored as arbitrary JSON values.
|
||||||
#[serde(flatten)]
|
#[serde(flatten)]
|
||||||
pub custom_capabilities: BTreeMap<String, Value>,
|
pub custom_capabilities: BTreeMap<String, JsonValue>,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Information about the m.change_password capability
|
/// Information about the m.change_password capability
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use ruma_identifiers::UserId;
|
use ruma_identifiers::UserId;
|
||||||
use serde_json::Value;
|
use serde_json::Value as JsonValue;
|
||||||
|
|
||||||
ruma_api! {
|
ruma_api! {
|
||||||
metadata {
|
metadata {
|
||||||
@ -17,7 +17,7 @@ ruma_api! {
|
|||||||
request {
|
request {
|
||||||
/// Arbitrary JSON to store as config data.
|
/// Arbitrary JSON to store as config data.
|
||||||
#[ruma_api(body)]
|
#[ruma_api(body)]
|
||||||
pub data: Value,
|
pub data: JsonValue,
|
||||||
/// The event type of the account_data to set.
|
/// The event type of the account_data to set.
|
||||||
///
|
///
|
||||||
/// Custom types should be namespaced to avoid clashes.
|
/// Custom types should be namespaced to avoid clashes.
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use ruma_identifiers::{RoomId, UserId};
|
use ruma_identifiers::{RoomId, UserId};
|
||||||
use serde_json::Value;
|
use serde_json::Value as JsonValue;
|
||||||
|
|
||||||
ruma_api! {
|
ruma_api! {
|
||||||
metadata {
|
metadata {
|
||||||
@ -17,7 +17,7 @@ ruma_api! {
|
|||||||
request {
|
request {
|
||||||
/// Arbitrary JSON to store as config data.
|
/// Arbitrary JSON to store as config data.
|
||||||
#[ruma_api(body)]
|
#[ruma_api(body)]
|
||||||
pub data: Value,
|
pub data: JsonValue,
|
||||||
/// The event type of the account_data to set.
|
/// The event type of the account_data to set.
|
||||||
///
|
///
|
||||||
/// Custom types should be namespaced to avoid clashes.
|
/// Custom types should be namespaced to avoid clashes.
|
||||||
|
@ -9,7 +9,8 @@ use serde::{
|
|||||||
ser::SerializeStruct,
|
ser::SerializeStruct,
|
||||||
Deserialize, Deserializer, Serialize, Serializer,
|
Deserialize, Deserializer, Serialize, Serializer,
|
||||||
};
|
};
|
||||||
use serde_json::Value;
|
|
||||||
|
use serde_json::Value as JsonValue;
|
||||||
|
|
||||||
use super::PublicRoomsChunk;
|
use super::PublicRoomsChunk;
|
||||||
|
|
||||||
@ -130,7 +131,7 @@ impl<'de> Visitor<'de> for RoomNetworkVisitor {
|
|||||||
{
|
{
|
||||||
let mut include_all_networks = false;
|
let mut include_all_networks = false;
|
||||||
let mut third_party_instance_id = None;
|
let mut third_party_instance_id = None;
|
||||||
while let Some((key, value)) = access.next_entry::<String, Value>()? {
|
while let Some((key, value)) = access.next_entry::<String, JsonValue>()? {
|
||||||
match key.as_str() {
|
match key.as_str() {
|
||||||
"include_all_networks" => {
|
"include_all_networks" => {
|
||||||
include_all_networks = match value.as_bool() {
|
include_all_networks = match value.as_bool() {
|
||||||
|
@ -305,14 +305,14 @@ impl<'de> Deserialize<'de> for LazyLoadOptions {
|
|||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use serde_json::json;
|
use serde_json::{from_value as from_json_value, json, to_value as to_json_value};
|
||||||
|
|
||||||
use super::LazyLoadOptions;
|
use super::LazyLoadOptions;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_serializing_disabled_lazy_load() {
|
fn test_serializing_disabled_lazy_load() {
|
||||||
let lazy_load_options = LazyLoadOptions::Disabled;
|
let lazy_load_options = LazyLoadOptions::Disabled;
|
||||||
assert_eq!(serde_json::to_value(lazy_load_options).unwrap(), json!({}));
|
assert_eq!(to_json_value(lazy_load_options).unwrap(), json!({}));
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@ -321,7 +321,7 @@ mod tests {
|
|||||||
include_redundant_members: false,
|
include_redundant_members: false,
|
||||||
};
|
};
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
serde_json::to_value(lazy_load_options).unwrap(),
|
to_json_value(lazy_load_options).unwrap(),
|
||||||
json!({ "lazy_load_members": true })
|
json!({ "lazy_load_members": true })
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -332,7 +332,7 @@ mod tests {
|
|||||||
include_redundant_members: true,
|
include_redundant_members: true,
|
||||||
};
|
};
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
serde_json::to_value(lazy_load_options).unwrap(),
|
to_json_value(lazy_load_options).unwrap(),
|
||||||
json!({ "lazy_load_members": true, "include_redundant_members": true })
|
json!({ "lazy_load_members": true, "include_redundant_members": true })
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -341,7 +341,7 @@ mod tests {
|
|||||||
fn test_deserializing_no_lazy_load() {
|
fn test_deserializing_no_lazy_load() {
|
||||||
let json = json!({});
|
let json = json!({});
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
serde_json::from_value::<LazyLoadOptions>(json).unwrap(),
|
from_json_value::<LazyLoadOptions>(json).unwrap(),
|
||||||
LazyLoadOptions::Disabled,
|
LazyLoadOptions::Disabled,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -350,7 +350,7 @@ mod tests {
|
|||||||
fn test_deserializing_ignore_redundant_members_when_no_lazy_load() {
|
fn test_deserializing_ignore_redundant_members_when_no_lazy_load() {
|
||||||
let json = json!({ "include_redundant_members": true });
|
let json = json!({ "include_redundant_members": true });
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
serde_json::from_value::<LazyLoadOptions>(json).unwrap(),
|
from_json_value::<LazyLoadOptions>(json).unwrap(),
|
||||||
LazyLoadOptions::Disabled,
|
LazyLoadOptions::Disabled,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@ use std::time::Duration;
|
|||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use ruma_identifiers::{DeviceId, UserId};
|
use ruma_identifiers::{DeviceId, UserId};
|
||||||
use serde_json::Value;
|
use serde_json::Value as JsonValue;
|
||||||
|
|
||||||
use super::{AlgorithmAndDeviceId, KeyAlgorithm, OneTimeKey};
|
use super::{AlgorithmAndDeviceId, KeyAlgorithm, OneTimeKey};
|
||||||
|
|
||||||
@ -37,7 +37,7 @@ ruma_api! {
|
|||||||
response {
|
response {
|
||||||
/// If any remote homeservers could not be reached, they are recorded here.
|
/// If any remote homeservers could not be reached, they are recorded here.
|
||||||
/// The names of the properties are the names of the unreachable servers.
|
/// The names of the properties are the names of the unreachable servers.
|
||||||
pub failures: BTreeMap<String, Value>,
|
pub failures: BTreeMap<String, JsonValue>,
|
||||||
|
|
||||||
/// One-time keys for the queried devices.
|
/// One-time keys for the queried devices.
|
||||||
pub one_time_keys: BTreeMap<UserId, BTreeMap<DeviceId, BTreeMap<AlgorithmAndDeviceId, OneTimeKey>>>,
|
pub one_time_keys: BTreeMap<UserId, BTreeMap<DeviceId, BTreeMap<AlgorithmAndDeviceId, OneTimeKey>>>,
|
||||||
|
@ -4,7 +4,7 @@ use std::{collections::BTreeMap, time::Duration};
|
|||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use ruma_identifiers::{DeviceId, UserId};
|
use ruma_identifiers::{DeviceId, UserId};
|
||||||
use serde_json::Value;
|
use serde_json::Value as JsonValue;
|
||||||
|
|
||||||
use super::DeviceKeys;
|
use super::DeviceKeys;
|
||||||
|
|
||||||
@ -41,7 +41,7 @@ ruma_api! {
|
|||||||
response {
|
response {
|
||||||
/// If any remote homeservers could not be reached, they are recorded here.
|
/// If any remote homeservers could not be reached, they are recorded here.
|
||||||
/// The names of the properties are the names of the unreachable servers.
|
/// The names of the properties are the names of the unreachable servers.
|
||||||
pub failures: BTreeMap<String, Value>,
|
pub failures: BTreeMap<String, JsonValue>,
|
||||||
|
|
||||||
/// Information on the queried devices.
|
/// Information on the queried devices.
|
||||||
pub device_keys: BTreeMap<UserId, BTreeMap<DeviceId, DeviceKeys>>,
|
pub device_keys: BTreeMap<UserId, BTreeMap<DeviceId, DeviceKeys>>,
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
use std::time::SystemTime;
|
use std::time::SystemTime;
|
||||||
|
|
||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use serde_json::Value;
|
use serde_json::Value as JsonValue;
|
||||||
|
|
||||||
ruma_api! {
|
ruma_api! {
|
||||||
metadata {
|
metadata {
|
||||||
@ -31,7 +31,7 @@ ruma_api! {
|
|||||||
/// Differences from OpenGraph: the image size in bytes is added to the `matrix:image:size`
|
/// Differences from OpenGraph: the image size in bytes is added to the `matrix:image:size`
|
||||||
/// field, and `og:image` returns the MXC URI to the image, if any.
|
/// field, and `og:image` returns the MXC URI to the image, if any.
|
||||||
#[ruma_api(body)]
|
#[ruma_api(body)]
|
||||||
pub data: Option<Value>,
|
pub data: Option<JsonValue>,
|
||||||
}
|
}
|
||||||
|
|
||||||
error: crate::Error
|
error: crate::Error
|
||||||
|
@ -51,14 +51,17 @@ pub enum InvitationRecipient {
|
|||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
|
use std::convert::TryFrom;
|
||||||
|
|
||||||
|
use ruma_identifiers::UserId;
|
||||||
|
use serde_json::{from_value as from_json_value, json};
|
||||||
|
|
||||||
use super::InvitationRecipient;
|
use super::InvitationRecipient;
|
||||||
use crate::r0::{membership::Invite3pid, thirdparty::Medium};
|
use crate::r0::{membership::Invite3pid, thirdparty::Medium};
|
||||||
use ruma_identifiers::UserId;
|
|
||||||
use std::convert::TryFrom;
|
|
||||||
#[test]
|
#[test]
|
||||||
fn deserialize_invite_by_user_id() {
|
fn deserialize_invite_by_user_id() {
|
||||||
let incoming =
|
let incoming =
|
||||||
serde_json::from_str::<InvitationRecipient>(r#" { "user_id": "@carl:example.org" } "#)
|
from_json_value::<InvitationRecipient>(json!({ "user_id": "@carl:example.org" }))
|
||||||
.unwrap();
|
.unwrap();
|
||||||
let user_id = UserId::try_from("@carl:example.org").unwrap();
|
let user_id = UserId::try_from("@carl:example.org").unwrap();
|
||||||
let recipient = InvitationRecipient::UserId { user_id };
|
let recipient = InvitationRecipient::UserId { user_id };
|
||||||
@ -67,16 +70,12 @@ mod tests {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn deserialize_invite_by_3pid() {
|
fn deserialize_invite_by_3pid() {
|
||||||
let incoming = serde_json::from_str::<InvitationRecipient>(
|
let incoming = from_json_value::<InvitationRecipient>(json!({
|
||||||
r#"
|
"id_server": "example.org",
|
||||||
{
|
"id_access_token": "abcdefghijklmnop",
|
||||||
"id_server": "example.org",
|
"medium": "email",
|
||||||
"id_access_token": "abcdefghijklmnop",
|
"address": "carl@example.org"
|
||||||
"medium": "email",
|
}))
|
||||||
"address": "carl@example.org"
|
|
||||||
}
|
|
||||||
"#,
|
|
||||||
)
|
|
||||||
.unwrap();
|
.unwrap();
|
||||||
let recipient = InvitationRecipient::ThirdPartyId(Invite3pid {
|
let recipient = InvitationRecipient::ThirdPartyId(Invite3pid {
|
||||||
id_server: "example.org".to_string(),
|
id_server: "example.org".to_string(),
|
||||||
|
@ -4,7 +4,7 @@ use ruma_api::ruma_api;
|
|||||||
use ruma_events::{room::power_levels::PowerLevelsEventContent, EventJson};
|
use ruma_events::{room::power_levels::PowerLevelsEventContent, EventJson};
|
||||||
use ruma_identifiers::{RoomId, UserId};
|
use ruma_identifiers::{RoomId, UserId};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use serde_json::Value;
|
use serde_json::Value as JsonValue;
|
||||||
|
|
||||||
use super::Visibility;
|
use super::Visibility;
|
||||||
use crate::r0::membership::Invite3pid;
|
use crate::r0::membership::Invite3pid;
|
||||||
@ -106,5 +106,5 @@ pub struct InitialStateEvent {
|
|||||||
/// `state_key` of the event to be sent.
|
/// `state_key` of the event to be sent.
|
||||||
pub state_key: Option<String>,
|
pub state_key: Option<String>,
|
||||||
/// JSON content of the state event.
|
/// JSON content of the state event.
|
||||||
pub content: Value,
|
pub content: JsonValue,
|
||||||
}
|
}
|
||||||
|
@ -37,12 +37,14 @@ pub enum LoginType {
|
|||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
|
use serde_json::{from_value as from_json_value, json};
|
||||||
|
|
||||||
use super::LoginType;
|
use super::LoginType;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn deserialize_login_type() {
|
fn deserialize_login_type() {
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
serde_json::from_str::<LoginType>(r#" {"type": "m.login.password"} "#).unwrap(),
|
from_json_value::<LoginType>(json!({ "type": "m.login.password" })).unwrap(),
|
||||||
LoginType::Password,
|
LoginType::Password,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -130,21 +130,17 @@ mod user_serde;
|
|||||||
mod tests {
|
mod tests {
|
||||||
use std::convert::TryInto;
|
use std::convert::TryInto;
|
||||||
|
|
||||||
use serde_json::json;
|
use serde_json::{from_value as from_json_value, json, Value as JsonValue};
|
||||||
|
|
||||||
use super::{LoginInfo, Medium, Request, UserInfo};
|
use super::{LoginInfo, Medium, Request, UserInfo};
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn deserialize_login_type() {
|
fn deserialize_login_type() {
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
serde_json::from_str::<LoginInfo>(
|
from_json_value::<LoginInfo>(json!({
|
||||||
r#"
|
"type": "m.login.password",
|
||||||
{
|
"password": "ilovebananas"
|
||||||
"type": "m.login.password",
|
}),)
|
||||||
"password": "ilovebananas"
|
|
||||||
}
|
|
||||||
"#,
|
|
||||||
)
|
|
||||||
.unwrap(),
|
.unwrap(),
|
||||||
LoginInfo::Password {
|
LoginInfo::Password {
|
||||||
password: "ilovebananas".into()
|
password: "ilovebananas".into()
|
||||||
@ -152,14 +148,10 @@ mod tests {
|
|||||||
);
|
);
|
||||||
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
serde_json::from_str::<LoginInfo>(
|
from_json_value::<LoginInfo>(json!({
|
||||||
r#"
|
"type": "m.login.token",
|
||||||
{
|
"token": "1234567890abcdef"
|
||||||
"type": "m.login.token",
|
}),)
|
||||||
"token": "1234567890abcdef"
|
|
||||||
}
|
|
||||||
"#,
|
|
||||||
)
|
|
||||||
.unwrap(),
|
.unwrap(),
|
||||||
LoginInfo::Token {
|
LoginInfo::Token {
|
||||||
token: "1234567890abcdef".into()
|
token: "1234567890abcdef".into()
|
||||||
@ -170,16 +162,12 @@ mod tests {
|
|||||||
#[test]
|
#[test]
|
||||||
fn deserialize_user() {
|
fn deserialize_user() {
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
serde_json::from_str::<UserInfo>(
|
from_json_value::<UserInfo>(json!({
|
||||||
r#"
|
"identifier": {
|
||||||
{
|
"type": "m.id.user",
|
||||||
"identifier": {
|
"user": "cheeky_monkey"
|
||||||
"type": "m.id.user",
|
|
||||||
"user": "cheeky_monkey"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
"#,
|
}))
|
||||||
)
|
|
||||||
.unwrap(),
|
.unwrap(),
|
||||||
UserInfo::MatrixId("cheeky_monkey".into())
|
UserInfo::MatrixId("cheeky_monkey".into())
|
||||||
);
|
);
|
||||||
@ -201,7 +189,7 @@ mod tests {
|
|||||||
.try_into()
|
.try_into()
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
let req_body_value: serde_json::Value = serde_json::from_slice(req.body()).unwrap();
|
let req_body_value: JsonValue = serde_json::from_slice(req.body()).unwrap();
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
req_body_value,
|
req_body_value,
|
||||||
json!({
|
json!({
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use ruma_events::EventType;
|
use ruma_events::EventType;
|
||||||
use ruma_identifiers::{EventId, RoomId};
|
use ruma_identifiers::{EventId, RoomId};
|
||||||
use serde_json::Value;
|
use serde_json::Value as JsonValue;
|
||||||
|
|
||||||
ruma_api! {
|
ruma_api! {
|
||||||
metadata {
|
metadata {
|
||||||
@ -24,7 +24,7 @@ ruma_api! {
|
|||||||
pub event_type: EventType,
|
pub event_type: EventType,
|
||||||
/// The event's content.
|
/// The event's content.
|
||||||
#[ruma_api(body)]
|
#[ruma_api(body)]
|
||||||
pub data: Value,
|
pub data: JsonValue,
|
||||||
}
|
}
|
||||||
|
|
||||||
response {
|
response {
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use ruma_events::EventType;
|
use ruma_events::EventType;
|
||||||
use ruma_identifiers::{EventId, RoomId};
|
use ruma_identifiers::{EventId, RoomId};
|
||||||
use serde_json::Value;
|
use serde_json::Value as JsonValue;
|
||||||
|
|
||||||
ruma_api! {
|
ruma_api! {
|
||||||
metadata {
|
metadata {
|
||||||
@ -27,7 +27,7 @@ ruma_api! {
|
|||||||
pub state_key: String,
|
pub state_key: String,
|
||||||
/// The event's content.
|
/// The event's content.
|
||||||
#[ruma_api(body)]
|
#[ruma_api(body)]
|
||||||
pub data: Value,
|
pub data: JsonValue,
|
||||||
}
|
}
|
||||||
|
|
||||||
response {
|
response {
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use ruma_events::EventType;
|
use ruma_events::EventType;
|
||||||
use ruma_identifiers::RoomId;
|
use ruma_identifiers::RoomId;
|
||||||
use serde_json::Value;
|
use serde_json::Value as JsonValue;
|
||||||
|
|
||||||
ruma_api! {
|
ruma_api! {
|
||||||
metadata {
|
metadata {
|
||||||
@ -27,7 +27,7 @@ ruma_api! {
|
|||||||
response {
|
response {
|
||||||
/// The content of the state event.
|
/// The content of the state event.
|
||||||
#[ruma_api(body)]
|
#[ruma_api(body)]
|
||||||
pub content: Value,
|
pub content: JsonValue,
|
||||||
}
|
}
|
||||||
|
|
||||||
error: crate::Error
|
error: crate::Error
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
use ruma_api::ruma_api;
|
use ruma_api::ruma_api;
|
||||||
use ruma_events::EventType;
|
use ruma_events::EventType;
|
||||||
use ruma_identifiers::RoomId;
|
use ruma_identifiers::RoomId;
|
||||||
use serde_json::Value;
|
use serde_json::Value as JsonValue;
|
||||||
|
|
||||||
ruma_api! {
|
ruma_api! {
|
||||||
metadata {
|
metadata {
|
||||||
@ -30,7 +30,7 @@ ruma_api! {
|
|||||||
response {
|
response {
|
||||||
/// The content of the state event.
|
/// The content of the state event.
|
||||||
#[ruma_api(body)]
|
#[ruma_api(body)]
|
||||||
pub content: Value,
|
pub content: JsonValue,
|
||||||
}
|
}
|
||||||
|
|
||||||
error: crate::Error
|
error: crate::Error
|
||||||
|
@ -4,7 +4,7 @@ use std::collections::BTreeMap;
|
|||||||
|
|
||||||
use ruma_api::{error::ResponseDeserializationError, EndpointError};
|
use ruma_api::{error::ResponseDeserializationError, EndpointError};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use serde_json::Value as JsonValue;
|
use serde_json::{from_slice as from_json_slice, to_vec as to_json_vec, Value as JsonValue};
|
||||||
|
|
||||||
use crate::error::{Error as MatrixError, ErrorBody};
|
use crate::error::{Error as MatrixError, ErrorBody};
|
||||||
|
|
||||||
@ -85,7 +85,7 @@ impl EndpointError for UiaaResponse {
|
|||||||
response: http::Response<Vec<u8>>,
|
response: http::Response<Vec<u8>>,
|
||||||
) -> Result<Self, ResponseDeserializationError> {
|
) -> Result<Self, ResponseDeserializationError> {
|
||||||
if response.status() == http::StatusCode::UNAUTHORIZED {
|
if response.status() == http::StatusCode::UNAUTHORIZED {
|
||||||
if let Ok(authentication_info) = serde_json::from_slice::<UiaaInfo>(response.body()) {
|
if let Ok(authentication_info) = from_json_slice::<UiaaInfo>(response.body()) {
|
||||||
return Ok(UiaaResponse::AuthResponse(authentication_info));
|
return Ok(UiaaResponse::AuthResponse(authentication_info));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -100,7 +100,7 @@ impl From<UiaaResponse> for http::Response<Vec<u8>> {
|
|||||||
UiaaResponse::AuthResponse(authentication_info) => http::Response::builder()
|
UiaaResponse::AuthResponse(authentication_info) => http::Response::builder()
|
||||||
.header(http::header::CONTENT_TYPE, "application/json")
|
.header(http::header::CONTENT_TYPE, "application/json")
|
||||||
.status(&http::StatusCode::UNAUTHORIZED)
|
.status(&http::StatusCode::UNAUTHORIZED)
|
||||||
.body(serde_json::to_vec(&authentication_info).unwrap())
|
.body(to_json_vec(&authentication_info).unwrap())
|
||||||
.unwrap(),
|
.unwrap(),
|
||||||
UiaaResponse::MatrixError(error) => http::Response::from(error),
|
UiaaResponse::MatrixError(error) => http::Response::from(error),
|
||||||
}
|
}
|
||||||
@ -113,7 +113,8 @@ mod tests {
|
|||||||
|
|
||||||
use ruma_api::EndpointError;
|
use ruma_api::EndpointError;
|
||||||
use serde_json::{
|
use serde_json::{
|
||||||
from_value as from_json_value, json, to_value as to_json_value, Value as JsonValue,
|
from_slice as from_json_slice, from_value as from_json_value, json,
|
||||||
|
to_value as to_json_value, Value as JsonValue,
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::{AuthData, AuthFlow, UiaaInfo, UiaaResponse};
|
use super::{AuthData, AuthFlow, UiaaInfo, UiaaResponse};
|
||||||
@ -286,7 +287,7 @@ mod tests {
|
|||||||
UiaaResponse::AuthResponse(uiaa_info.clone()).into();
|
UiaaResponse::AuthResponse(uiaa_info.clone()).into();
|
||||||
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
serde_json::from_slice::<UiaaInfo>(uiaa_response.body()).unwrap(),
|
from_json_slice::<UiaaInfo>(uiaa_response.body()).unwrap(),
|
||||||
uiaa_info,
|
uiaa_info,
|
||||||
);
|
);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user