use crate::client::intrinsic::vulnerability::query::query_vulnerability::AllVulnerabilityTreeVulnerabilityIDs;
use crate::client::intrinsic::vulnerability::{Vulnerability, VulnerabilityId, VulnerabilitySpec};
use graphql_client::GraphQLQuery;
#[derive(GraphQLQuery)]
#[graphql(
schema_path = "src/client/intrinsic/schema.json",
query_path = "src/client/intrinsic/vulnerability/vulnerability.gql",
response_derives = "Debug, Serialize, Deserialize"
)]
pub struct QueryVulnerability;
impl From<&VulnerabilitySpec> for query_vulnerability::VulnerabilitySpec {
fn from(vuln: &VulnerabilitySpec) -> Self {
Self {
id: vuln.id.clone(),
type_: vuln.r#type.clone(),
vulnerability_id: vuln.vulnerability_id.clone(),
no_vuln: vuln.no_vuln,
}
}
}
impl From<&query_vulnerability::allVulnerabilityTree> for Vulnerability {
fn from(value: &query_vulnerability::allVulnerabilityTree) -> Self {
Self {
id: value.id.clone(),
r#type: value.type_.clone(),
vulnerability_ids: value.vulnerability_i_ds.iter().map(|e| e.into()).collect(),
}
}
}
impl From<&query_vulnerability::AllVulnerabilityTreeVulnerabilityIDs> for VulnerabilityId {
fn from(value: &AllVulnerabilityTreeVulnerabilityIDs) -> Self {
Self {
id: value.id.clone(),
vulnerability_id: value.vulnerability_id.clone(),
}
}
}