client-api: Fix timeout field in media download endpoint requests
According to the stabilization spec PR.
This commit is contained in:
parent
b27e54c7ed
commit
10d70c6055
@ -1,5 +1,8 @@
|
|||||||
//! Endpoints for the media repository.
|
//! Endpoints for the media repository.
|
||||||
|
|
||||||
|
#[cfg(feature = "unstable-msc2246")]
|
||||||
|
use std::time::Duration;
|
||||||
|
|
||||||
pub mod create_content;
|
pub mod create_content;
|
||||||
#[cfg(feature = "unstable-msc2246")]
|
#[cfg(feature = "unstable-msc2246")]
|
||||||
pub mod create_content_async;
|
pub mod create_content_async;
|
||||||
@ -10,3 +13,16 @@ pub mod get_content_as_filename;
|
|||||||
pub mod get_content_thumbnail;
|
pub mod get_content_thumbnail;
|
||||||
pub mod get_media_config;
|
pub mod get_media_config;
|
||||||
pub mod get_media_preview;
|
pub mod get_media_preview;
|
||||||
|
|
||||||
|
/// The default duration that the client should be willing to wait to start receiving data.
|
||||||
|
#[cfg(feature = "unstable-msc2246")]
|
||||||
|
fn default_download_timeout() -> Duration {
|
||||||
|
Duration::from_secs(20)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Whether the given duration is the default duration that the client should be willing to wait to
|
||||||
|
/// start receiving data.
|
||||||
|
#[cfg(feature = "unstable-msc2246")]
|
||||||
|
fn is_default_download_timeout(timeout: &Duration) -> bool {
|
||||||
|
timeout.as_secs() == 20
|
||||||
|
}
|
||||||
|
@ -7,9 +7,10 @@ pub mod v3 {
|
|||||||
//!
|
//!
|
||||||
//! [spec]: https://spec.matrix.org/latest/client-server-api/#get_matrixmediav3downloadservernamemediaid
|
//! [spec]: https://spec.matrix.org/latest/client-server-api/#get_matrixmediav3downloadservernamemediaid
|
||||||
|
|
||||||
use http::header::{CONTENT_DISPOSITION, CONTENT_TYPE};
|
|
||||||
#[cfg(feature = "unstable-msc2246")]
|
#[cfg(feature = "unstable-msc2246")]
|
||||||
use js_int::UInt;
|
use std::time::Duration;
|
||||||
|
|
||||||
|
use http::header::{CONTENT_DISPOSITION, CONTENT_TYPE};
|
||||||
use ruma_common::{
|
use ruma_common::{
|
||||||
api::{request, response, Metadata},
|
api::{request, response, Metadata},
|
||||||
metadata, IdParseError, MxcUri, OwnedServerName,
|
metadata, IdParseError, MxcUri, OwnedServerName,
|
||||||
@ -48,18 +49,22 @@ pub mod v3 {
|
|||||||
)]
|
)]
|
||||||
pub allow_remote: bool,
|
pub allow_remote: bool,
|
||||||
|
|
||||||
/// How long to wait for the media to be uploaded
|
/// The maximum duration that the client is willing to wait to start receiving data, in the
|
||||||
|
/// case that the content has not yet been uploaded.
|
||||||
|
///
|
||||||
|
/// The default value is 20 seconds.
|
||||||
///
|
///
|
||||||
/// This uses the unstable prefix in
|
/// This uses the unstable prefix in
|
||||||
/// [MSC2246](https://github.com/matrix-org/matrix-spec-proposals/pull/2246)
|
/// [MSC2246](https://github.com/matrix-org/matrix-spec-proposals/pull/2246).
|
||||||
#[ruma_api(query)]
|
#[ruma_api(query)]
|
||||||
#[cfg(feature = "unstable-msc2246")]
|
#[cfg(feature = "unstable-msc2246")]
|
||||||
#[serde(
|
#[serde(
|
||||||
default,
|
with = "ruma_common::serde::duration::ms",
|
||||||
skip_serializing_if = "ruma_common::serde::is_default",
|
default = "crate::media::default_download_timeout",
|
||||||
|
skip_serializing_if = "crate::media::is_default_download_timeout",
|
||||||
rename = "fi.mau.msc2246.max_stall_ms"
|
rename = "fi.mau.msc2246.max_stall_ms"
|
||||||
)]
|
)]
|
||||||
pub max_stall_ms: Option<UInt>,
|
pub timeout_ms: Duration,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Response type for the `get_media_content` endpoint.
|
/// Response type for the `get_media_content` endpoint.
|
||||||
@ -99,7 +104,7 @@ pub mod v3 {
|
|||||||
server_name,
|
server_name,
|
||||||
allow_remote: true,
|
allow_remote: true,
|
||||||
#[cfg(feature = "unstable-msc2246")]
|
#[cfg(feature = "unstable-msc2246")]
|
||||||
max_stall_ms: None,
|
timeout_ms: crate::media::default_download_timeout(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,6 +7,9 @@ pub mod v3 {
|
|||||||
//!
|
//!
|
||||||
//! [spec]: https://spec.matrix.org/latest/client-server-api/#get_matrixmediav3downloadservernamemediaidfilename
|
//! [spec]: https://spec.matrix.org/latest/client-server-api/#get_matrixmediav3downloadservernamemediaidfilename
|
||||||
|
|
||||||
|
#[cfg(feature = "unstable-msc2246")]
|
||||||
|
use std::time::Duration;
|
||||||
|
|
||||||
use http::header::{CONTENT_DISPOSITION, CONTENT_TYPE};
|
use http::header::{CONTENT_DISPOSITION, CONTENT_TYPE};
|
||||||
use ruma_common::{
|
use ruma_common::{
|
||||||
api::{request, response, Metadata},
|
api::{request, response, Metadata},
|
||||||
@ -49,6 +52,23 @@ pub mod v3 {
|
|||||||
skip_serializing_if = "ruma_common::serde::is_true"
|
skip_serializing_if = "ruma_common::serde::is_true"
|
||||||
)]
|
)]
|
||||||
pub allow_remote: bool,
|
pub allow_remote: bool,
|
||||||
|
|
||||||
|
/// The maximum duration that the client is willing to wait to start receiving data, in the
|
||||||
|
/// case that the content has not yet been uploaded.
|
||||||
|
///
|
||||||
|
/// The default value is 20 seconds.
|
||||||
|
///
|
||||||
|
/// This uses the unstable prefix in
|
||||||
|
/// [MSC2246](https://github.com/matrix-org/matrix-spec-proposals/pull/2246).
|
||||||
|
#[ruma_api(query)]
|
||||||
|
#[cfg(feature = "unstable-msc2246")]
|
||||||
|
#[serde(
|
||||||
|
with = "ruma_common::serde::duration::ms",
|
||||||
|
default = "crate::media::default_download_timeout",
|
||||||
|
skip_serializing_if = "crate::media::is_default_download_timeout",
|
||||||
|
rename = "fi.mau.msc2246.max_stall_ms"
|
||||||
|
)]
|
||||||
|
pub timeout_ms: Duration,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Response type for the `get_media_content_as_filename` endpoint.
|
/// Response type for the `get_media_content_as_filename` endpoint.
|
||||||
@ -83,7 +103,14 @@ pub mod v3 {
|
|||||||
impl Request {
|
impl Request {
|
||||||
/// Creates a new `Request` with the given media ID, server name and filename.
|
/// Creates a new `Request` with the given media ID, server name and filename.
|
||||||
pub fn new(media_id: String, server_name: OwnedServerName, filename: String) -> Self {
|
pub fn new(media_id: String, server_name: OwnedServerName, filename: String) -> Self {
|
||||||
Self { media_id, server_name, filename, allow_remote: true }
|
Self {
|
||||||
|
media_id,
|
||||||
|
server_name,
|
||||||
|
filename,
|
||||||
|
allow_remote: true,
|
||||||
|
#[cfg(feature = "unstable-msc2246")]
|
||||||
|
timeout_ms: crate::media::default_download_timeout(),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Creates a new `Request` with the given url and filename.
|
/// Creates a new `Request` with the given url and filename.
|
||||||
|
@ -7,6 +7,9 @@ pub mod v3 {
|
|||||||
//!
|
//!
|
||||||
//! [spec]: https://spec.matrix.org/latest/client-server-api/#get_matrixmediav3thumbnailservernamemediaid
|
//! [spec]: https://spec.matrix.org/latest/client-server-api/#get_matrixmediav3thumbnailservernamemediaid
|
||||||
|
|
||||||
|
#[cfg(feature = "unstable-msc2246")]
|
||||||
|
use std::time::Duration;
|
||||||
|
|
||||||
use http::header::CONTENT_TYPE;
|
use http::header::CONTENT_TYPE;
|
||||||
use js_int::UInt;
|
use js_int::UInt;
|
||||||
use ruma_common::{
|
use ruma_common::{
|
||||||
@ -66,18 +69,22 @@ pub mod v3 {
|
|||||||
)]
|
)]
|
||||||
pub allow_remote: bool,
|
pub allow_remote: bool,
|
||||||
|
|
||||||
/// How long to wait for the media to be uploaded
|
/// The maximum duration that the client is willing to wait to start receiving data, in the
|
||||||
|
/// case that the content has not yet been uploaded.
|
||||||
|
///
|
||||||
|
/// The default value is 20 seconds.
|
||||||
///
|
///
|
||||||
/// This uses the unstable prefix in
|
/// This uses the unstable prefix in
|
||||||
/// [MSC2246](https://github.com/matrix-org/matrix-spec-proposals/pull/2246)
|
/// [MSC2246](https://github.com/matrix-org/matrix-spec-proposals/pull/2246).
|
||||||
#[ruma_api(query)]
|
#[ruma_api(query)]
|
||||||
#[cfg(feature = "unstable-msc2246")]
|
#[cfg(feature = "unstable-msc2246")]
|
||||||
#[serde(
|
#[serde(
|
||||||
default,
|
with = "ruma_common::serde::duration::ms",
|
||||||
skip_serializing_if = "ruma_common::serde::is_default",
|
default = "crate::media::default_download_timeout",
|
||||||
|
skip_serializing_if = "crate::media::is_default_download_timeout",
|
||||||
rename = "fi.mau.msc2246.max_stall_ms"
|
rename = "fi.mau.msc2246.max_stall_ms"
|
||||||
)]
|
)]
|
||||||
pub max_stall_ms: Option<UInt>,
|
pub timeout_ms: Duration,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Response type for the `get_content_thumbnail` endpoint.
|
/// Response type for the `get_content_thumbnail` endpoint.
|
||||||
@ -117,7 +124,7 @@ pub mod v3 {
|
|||||||
height,
|
height,
|
||||||
allow_remote: true,
|
allow_remote: true,
|
||||||
#[cfg(feature = "unstable-msc2246")]
|
#[cfg(feature = "unstable-msc2246")]
|
||||||
max_stall_ms: None,
|
timeout_ms: crate::media::default_download_timeout(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user