arminius_lib_sync/syncv4/
error.rs1use arminius_lib_component::error::{FeatureNotImplemented, InternalServerError, MatrixApiError};
8use reqwest::StatusCode;
9use ruma::api::error::ErrorKind;
10
11use crate::sync_token::SyncTokenParseError;
12
13pub const MAX_LISTS_LEN: usize = 100;
15
16pub const MAX_SUBSCRIPTIONS_LEN: usize = 100;
19
20#[derive(Debug, thiserror::Error, MatrixApiError, arminius_lib_macros::FromDbError)]
22pub enum SyncV4Error {
23 #[error(transparent)]
25 InternalServerError(#[from] InternalServerError),
26 #[error(transparent)]
29 SyncTokenParseError(#[from] SyncTokenParseError),
30
31 #[matrix_api_error(status_code = StatusCode::BAD_REQUEST, error_kind = ErrorKind::UnknownPos)]
33 #[error("Unknown `pos` parameter provided")]
34 UnknownPos,
35 #[matrix_api_error(status_code = StatusCode::BAD_REQUEST, error_kind = ErrorKind::InvalidParam)]
38 #[error("Invalid `pos` parameter provided")]
39 PosFromFuture,
40 #[matrix_api_error(status_code = StatusCode::BAD_REQUEST, error_kind = ErrorKind::InvalidParam)]
43 #[error("Requests `lists` cannot contain more than {MAX_LISTS_LEN} elements")]
44 TooManyLists,
45 #[matrix_api_error(status_code = StatusCode::BAD_REQUEST, error_kind = ErrorKind::InvalidParam)]
49 #[error(
50 "Requests `room_subscriptions` cannot contain more than {MAX_SUBSCRIPTIONS_LEN} elements"
51 )]
52 TooManySubscriptions,
53
54 #[matrix_api_error(status_code = StatusCode::BAD_REQUEST, error_kind = ErrorKind::InvalidParam)]
56 #[error("Reversed range (a, b) where b < a")]
57 ReversedRange,
58
59 #[error("Feature not implemented")]
61 FeatureNotImplemented(#[from] FeatureNotImplemented),
62}