From ba2305dbe5bc0c3215a7886e1732ecf181d7438b Mon Sep 17 00:00:00 2001 From: Max Giga <gigamaximwachau@gmail.com> Date: Wed, 12 Jan 2022 16:51:57 +0300 Subject: [PATCH] set empty url in WebhookInfo to None --- src/types/webhook_info.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/types/webhook_info.rs b/src/types/webhook_info.rs index f90e2a53..0a59cfc6 100644 --- a/src/types/webhook_info.rs +++ b/src/types/webhook_info.rs @@ -7,6 +7,7 @@ use serde::{Deserialize, Serialize}; #[serde_with_macros::skip_serializing_none] #[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)] pub struct WebhookInfo { + #[serde(deserialize_with = "empty_string_to_url")] /// Webhook URL, `None` if webhook is not set up. pub url: Option<reqwest::Url>, @@ -37,3 +38,10 @@ pub struct WebhookInfo { /// types. pub allowed_updates: Option<Vec<String>>, } + +fn empty_string_to_url<'de, D>(deserializer: D) -> Result<Option<reqwest::Url>, D::Error> +where + D: serde::Deserializer<'de>, +{ + Ok(reqwest::Url::deserialize(deserializer).ok()) +}