fix: Random mrdka
This commit is contained in:
+19
-1
@@ -239,7 +239,7 @@ struct CreateInput {
|
||||
text_content: String,
|
||||
start_date: String,
|
||||
end_date: String,
|
||||
#[serde(default)]
|
||||
#[serde(default, deserialize_with = "one_or_many")]
|
||||
flags: Vec<String>,
|
||||
}
|
||||
|
||||
@@ -325,6 +325,24 @@ async fn delete_announcement(
|
||||
|
||||
// ── Helpers ───────────────────────────────────────────────────────────────────
|
||||
|
||||
fn one_or_many<'de, D: serde::Deserializer<'de>>(d: D) -> Result<Vec<String>, D::Error> {
|
||||
use serde::de;
|
||||
struct OneOrMany;
|
||||
impl<'de> de::Visitor<'de> for OneOrMany {
|
||||
type Value = Vec<String>;
|
||||
fn expecting(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
|
||||
f.write_str("a string or list of strings")
|
||||
}
|
||||
fn visit_str<E: de::Error>(self, v: &str) -> Result<Vec<String>, E> {
|
||||
Ok(vec![v.to_owned()])
|
||||
}
|
||||
fn visit_seq<A: de::SeqAccess<'de>>(self, seq: A) -> Result<Vec<String>, A::Error> {
|
||||
de::Deserialize::deserialize(de::value::SeqAccessDeserializer::new(seq))
|
||||
}
|
||||
}
|
||||
d.deserialize_any(OneOrMany)
|
||||
}
|
||||
|
||||
fn escape_html(s: &str) -> String {
|
||||
s.replace('&', "&")
|
||||
.replace('<', "<")
|
||||
|
||||
Reference in New Issue
Block a user