Move legacy Filter type to mod v1; publish fields

This commit is contained in:
D. Scott Boggs 2023-01-02 06:37:19 -05:00 committed by Scott Boggs
parent acef484b73
commit 6ee2f277d8
1 changed files with 24 additions and 11 deletions

View File

@ -1,16 +1,29 @@
use serde::{Deserialize, Serialize};
use time::{serde::iso8601, OffsetDateTime};
/// Represents a single Filter
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct Filter {
id: String,
phrase: String,
context: Vec<FilterContext>,
#[serde(with = "iso8601::option")]
expires_at: Option<OffsetDateTime>,
irreversible: bool,
whole_word: bool,
mod v1 {
pub use super::FilterContext;
use serde::{Deserialize, Serialize};
use time::{serde::iso8601, OffsetDateTime};
/// Represents a single Filter
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct Filter {
/// The ID of the Filter in the database.
pub id: String,
/// The text to be filtered.
pub phrase: String,
/// The contexts in which the filter should be applied.
pub context: Vec<FilterContext>,
/// When the filter should no longer be applied.
///
/// `None` indicates that the filter does not expire.
#[serde(with = "iso8601::option")]
pub expires_at: Option<OffsetDateTime>,
/// Should matching entities in home and notifications be dropped by the server?
pub irreversible: bool,
/// Should the filter consider word boundaries?
pub whole_word: bool,
}
}
/// Represents the various types of Filter contexts