From e57f72940dc92d904412a698c67ce79d45bd5b2e Mon Sep 17 00:00:00 2001 From: ntr Date: Mon, 26 Aug 2019 19:30:38 +1000 Subject: [PATCH] don't bail the tx when looking for a mail account --- server/src/mail.rs | 10 ++++++---- server/src/rpc.rs | 6 +++--- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/server/src/mail.rs b/server/src/mail.rs index c0039521..0fdffc7b 100644 --- a/server/src/mail.rs +++ b/server/src/mail.rs @@ -130,7 +130,7 @@ pub fn select(db: &Db, email: &String) -> Result { return Ok(Email { id, email, account, confirmed }); } -pub fn select_account(db: &Db, account: Uuid) -> Result { +pub fn select_account(db: &Db, account: Uuid) -> Result, Error> { let query = " SELECT id, email, account, confirmed FROM emails @@ -140,15 +140,17 @@ pub fn select_account(db: &Db, account: Uuid) -> Result { let result = db .query(query, &[&account])?; - let row = result.iter().next() - .ok_or(err_msg("email found"))?; + let row = match result.iter().next() { + Some(r) => r, + None => return Ok(None), + }; let id: Uuid = row.get(0); let email: String = row.get(1); let account: Uuid = row.get(2); let confirmed: bool = row.get(3); - return Ok(Email { id, email, account, confirmed }); + return Ok(Some(Email { id, email, account, confirmed })); } pub fn set_recovery(tx: &mut Transaction, email: &String) -> Result { diff --git a/server/src/rpc.rs b/server/src/rpc.rs index 7d596869..eb97be9a 100644 --- a/server/src/rpc.rs +++ b/server/src/rpc.rs @@ -229,12 +229,12 @@ impl Handler for Connection { let mut tx = db.transaction().unwrap(); // email state - match mail::select_account(&db, a.id) { - Ok(e) => { + match mail::select_account(&db, a.id).unwrap() { + Some(e) => { self.ws.send(RpcMessage::EmailState(e.clone())).unwrap(); self.events.send(Event::Subscribe(self.id, e.id)).unwrap(); }, - Err(_) => (), + None => (), }; // send account constructs