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 });
|
||||
}
|
||||
|
||||
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 = "
|
||||
SELECT id, email, account, confirmed
|
||||
FROM emails
|
||||
@ -140,15 +140,17 @@ pub fn select_account(db: &Db, account: Uuid) -> Result<Email, Error> {
|
||||
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<String, Error> {
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user