diff --git a/database/src/fs.rs b/database/src/fs.rs index 91399af..a9fdc45 100644 --- a/database/src/fs.rs +++ b/database/src/fs.rs @@ -484,6 +484,7 @@ impl Database for Filesystem { ByFingerprint(ref fp) => self.link_by_fingerprint(fp), ByKeyID(ref keyid) => self.link_by_keyid(keyid), ByEmail(ref email) => self.link_by_email(email), + _ => return None }; path.read_link() .ok() @@ -497,6 +498,7 @@ impl Database for Filesystem { ByFingerprint(ref fp) => self.link_by_fingerprint(fp), ByKeyID(ref keyid) => self.link_by_keyid(keyid), ByEmail(ref email) => self.link_by_email(email), + _ => return None }; if path.exists() { diff --git a/database/src/lib.rs b/database/src/lib.rs index 3db6a24..455e8da 100644 --- a/database/src/lib.rs +++ b/database/src/lib.rs @@ -62,6 +62,8 @@ pub enum Query { ByFingerprint(Fingerprint), ByKeyID(KeyID), ByEmail(Email), + InvalidShort(), + Invalid(), } impl FromStr for Query { @@ -73,29 +75,15 @@ impl FromStr for Query { let looks_like_short_key_id = !term.contains('@') && (term.starts_with("0x") && term.len() < 16 || term.len() == 8); if looks_like_short_key_id { - return Err(anyhow!("Search by Short Key ID is not supported, sorry!")); - } - if let Ok(fp) = Fingerprint::from_str(term) { + Ok(InvalidShort()) + } else if let Ok(fp) = Fingerprint::from_str(term) { Ok(ByFingerprint(fp)) } else if let Ok(keyid) = KeyID::from_str(term) { Ok(ByKeyID(keyid)) } else if let Ok(email) = Email::from_str(term) { Ok(ByEmail(email)) } else { - Err(anyhow!("Invalid search query!")) - } - } -} - -impl Query { - pub fn describe_error(&self) -> String { - match self { - Query::ByFingerprint(fpr) => - format!("No key found for fingerprint {}", fpr), - Query::ByKeyID(key_id) => - format!("No key found for key id {}", key_id), - Query::ByEmail(email) => - format!("No key found for e-mail address {}", email), + Ok(Invalid()) } } } @@ -152,6 +140,7 @@ pub trait Database: Sync + Send { ByFingerprint(ref fp) => self.by_fpr(fp), ByKeyID(ref keyid) => self.by_kid(keyid), ByEmail(ref email) => self.by_email(&email), + _ => None, }; match armored { diff --git a/dist/templates/index.html.hbs b/dist/templates/index.html.hbs index 625625d..65af7c2 100644 --- a/dist/templates/index.html.hbs +++ b/dist/templates/index.html.hbs @@ -2,7 +2,7 @@ {{#with page}} {{#with error}} -
Error: {{ this }}
+{{ text "Error" }}: {{ this }}
{{/with}}