@@ -29,6 +29,7 @@ use http::{header::AUTHORIZATION, HeaderMap, HeaderValue};
2929use humantime_serde:: re:: humantime;
3030use reqwest:: ClientBuilder ;
3131use tracing:: { error, trace, warn} ;
32+ use url:: Url ;
3233
3334use super :: ALERTS ;
3435
@@ -255,9 +256,9 @@ fn default_client_builder() -> ClientBuilder {
255256 ClientBuilder :: new ( )
256257}
257258
258- #[ derive( Default , Debug , Clone , PartialEq , Eq , serde:: Serialize , serde:: Deserialize ) ]
259+ #[ derive( Debug , Clone , PartialEq , Eq , serde:: Serialize , serde:: Deserialize ) ]
259260pub struct SlackWebHook {
260- endpoint : String ,
261+ endpoint : Url ,
261262}
262263
263264#[ async_trait]
@@ -279,7 +280,7 @@ impl CallableTarget for SlackWebHook {
279280 }
280281 } ;
281282
282- if let Err ( e) = client. post ( & self . endpoint ) . json ( & alert) . send ( ) . await {
283+ if let Err ( e) = client. post ( self . endpoint . clone ( ) ) . json ( & alert) . send ( ) . await {
283284 error ! ( "Couldn't make call to webhook, error: {}" , e)
284285 }
285286 }
@@ -288,7 +289,7 @@ impl CallableTarget for SlackWebHook {
288289#[ derive( Debug , Clone , PartialEq , Eq , serde:: Serialize , serde:: Deserialize ) ]
289290#[ serde( rename_all = "camelCase" ) ]
290291pub struct OtherWebHook {
291- endpoint : String ,
292+ endpoint : Url ,
292293 #[ serde( default ) ]
293294 headers : HashMap < String , String > ,
294295 #[ serde( default ) ]
@@ -314,7 +315,7 @@ impl CallableTarget for OtherWebHook {
314315 } ;
315316
316317 let request = client
317- . post ( & self . endpoint )
318+ . post ( self . endpoint . clone ( ) )
318319 . headers ( ( & self . headers ) . try_into ( ) . expect ( "valid_headers" ) ) ;
319320
320321 if let Err ( e) = request. body ( alert) . send ( ) . await {
@@ -326,7 +327,7 @@ impl CallableTarget for OtherWebHook {
326327#[ derive( Debug , Clone , PartialEq , Eq , serde:: Serialize , serde:: Deserialize ) ]
327328#[ serde( rename_all = "camelCase" ) ]
328329pub struct AlertManager {
329- endpoint : String ,
330+ endpoint : Url ,
330331 #[ serde( default ) ]
331332 skip_tls_check : bool ,
332333 #[ serde( flatten) ]
@@ -404,7 +405,7 @@ impl CallableTarget for AlertManager {
404405 }
405406 } ;
406407
407- if let Err ( e) = client. post ( & self . endpoint ) . json ( & alerts) . send ( ) . await {
408+ if let Err ( e) = client. post ( self . endpoint . clone ( ) ) . json ( & alerts) . send ( ) . await {
408409 error ! ( "Couldn't make call to alertmanager, error: {}" , e)
409410 }
410411 }
0 commit comments