use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct HookDelivery {
#[serde(rename = "id")]
pub id: i32,
#[serde(rename = "guid")]
pub guid: String,
#[serde(rename = "delivered_at")]
pub delivered_at: String,
#[serde(rename = "redelivery")]
pub redelivery: bool,
#[serde(rename = "duration")]
pub duration: f64,
#[serde(rename = "status")]
pub status: String,
#[serde(rename = "status_code")]
pub status_code: i32,
#[serde(rename = "event")]
pub event: String,
#[serde(rename = "action", deserialize_with = "Option::deserialize")]
pub action: Option<String>,
#[serde(rename = "installation_id", deserialize_with = "Option::deserialize")]
pub installation_id: Option<i32>,
#[serde(rename = "repository_id", deserialize_with = "Option::deserialize")]
pub repository_id: Option<i32>,
#[serde(rename = "url", skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(rename = "request")]
pub request: Box<models::HookDeliveryRequest>,
#[serde(rename = "response")]
pub response: Box<models::HookDeliveryResponse>,
}
impl HookDelivery {
pub fn new(id: i32, guid: String, delivered_at: String, redelivery: bool, duration: f64, status: String, status_code: i32, event: String, action: Option<String>, installation_id: Option<i32>, repository_id: Option<i32>, request: models::HookDeliveryRequest, response: models::HookDeliveryResponse) -> HookDelivery {
HookDelivery {
id,
guid,
delivered_at,
redelivery,
duration,
status,
status_code,
event,
action,
installation_id,
repository_id,
url: None,
request: Box::new(request),
response: Box::new(response),
}
}
}