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())
+}