silly goober bot

fix(commands/crates): handle empty fields

authored by

Kaitlyn~Ethylia and committed by isabelroses.com dd10d5a1 43db57aa

+15 -10
+15 -10
src/commands/misc/crates.rs
··· 29 29 struct Crate { 30 30 categories: Vec<String>, 31 31 homepage: Option<String>, 32 + repository: Option<String>, 32 33 description: String, 33 34 max_stable_version: String, 34 35 } ··· 75 76 resp.c.max_stable_version 76 77 )); 77 78 78 - embed = embed 79 - .description(resp.c.description) 80 - .timestamp(Timestamp::parse(&version.updated_at)?) 81 - .field( 79 + if !resp.c.categories.is_empty() { 80 + embed = embed.field( 82 81 "Categories", 83 82 resp.c 84 83 .categories ··· 87 86 .collect::<Vec<String>>() 88 87 .join(", "), 89 88 false, 90 - ) 91 - .field( 92 - "Homepage", 93 - resp.c.homepage.unwrap_or_else(|| String::from("N/A")), 94 - true, 95 - ) 89 + ); 90 + } 91 + 92 + embed = match (resp.c.homepage, resp.c.repository) { 93 + (Some(homepage), _) => embed.field("Homepage", homepage, true), 94 + (None, Some(repository)) => embed.field("Repository", repository, true), 95 + (None, None) => embed.field("Homepage", "N/A", true), 96 + }; 97 + 98 + embed = embed 99 + .description(resp.c.description) 100 + .timestamp(Timestamp::parse(&version.updated_at)?) 96 101 .field( 97 102 "License", 98 103 version