don't bail the tx when looking for a mail account
This commit is contained in:
parent
3bca63ed7e
commit
e57f72940d
@ -130,7 +130,7 @@ pub fn select(db: &Db, email: &String) -> Result<Email, Error> {
|
|||||||
return Ok(Email { id, email, account, confirmed });
|
return Ok(Email { id, email, account, confirmed });
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn select_account(db: &Db, account: Uuid) -> Result<Email, Error> {
|
pub fn select_account(db: &Db, account: Uuid) -> Result<Option<Email>, Error> {
|
||||||
let query = "
|
let query = "
|
||||||
SELECT id, email, account, confirmed
|
SELECT id, email, account, confirmed
|
||||||
FROM emails
|
FROM emails
|
||||||
@ -140,15 +140,17 @@ pub fn select_account(db: &Db, account: Uuid) -> Result<Email, Error> {
|
|||||||
let result = db
|
let result = db
|
||||||
.query(query, &[&account])?;
|
.query(query, &[&account])?;
|
||||||
|
|
||||||
let row = result.iter().next()
|
let row = match result.iter().next() {
|
||||||
.ok_or(err_msg("email found"))?;
|
Some(r) => r,
|
||||||
|
None => return Ok(None),
|
||||||
|
};
|
||||||
|
|
||||||
let id: Uuid = row.get(0);
|
let id: Uuid = row.get(0);
|
||||||
let email: String = row.get(1);
|
let email: String = row.get(1);
|
||||||
let account: Uuid = row.get(2);
|
let account: Uuid = row.get(2);
|
||||||
let confirmed: bool = row.get(3);
|
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<String, Error> {
|
pub fn set_recovery(tx: &mut Transaction, email: &String) -> Result<String, Error> {
|
||||||
|
|||||||
@ -229,12 +229,12 @@ impl Handler for Connection {
|
|||||||
let mut tx = db.transaction().unwrap();
|
let mut tx = db.transaction().unwrap();
|
||||||
|
|
||||||
// email state
|
// email state
|
||||||
match mail::select_account(&db, a.id) {
|
match mail::select_account(&db, a.id).unwrap() {
|
||||||
Ok(e) => {
|
Some(e) => {
|
||||||
self.ws.send(RpcMessage::EmailState(e.clone())).unwrap();
|
self.ws.send(RpcMessage::EmailState(e.clone())).unwrap();
|
||||||
self.events.send(Event::Subscribe(self.id, e.id)).unwrap();
|
self.events.send(Event::Subscribe(self.id, e.id)).unwrap();
|
||||||
},
|
},
|
||||||
Err(_) => (),
|
None => (),
|
||||||
};
|
};
|
||||||
|
|
||||||
// send account constructs
|
// send account constructs
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user