feat: DB operations can fail
This commit is contained in:
parent
dc239371e9
commit
7527ba7a09
6 changed files with 50 additions and 19 deletions
|
|
@ -1,17 +1,23 @@
|
|||
use crate::db::error::UserAlreadyExists;
|
||||
use crate::db::error::{BoxedError, UserAlreadyExists};
|
||||
use crate::db::{Database, User, UserRef};
|
||||
|
||||
impl<D: DatabaseInterface> DatabaseInterface for Database<D> {
|
||||
async fn get_user(&self, user: &UserRef) -> Option<User> {
|
||||
async fn get_user(&self, user: &UserRef) -> Result<Option<User>, BoxedError> {
|
||||
self.inner.read().await.get_user(user).await
|
||||
}
|
||||
|
||||
async fn create_user(&mut self, user: User) -> Result<(), UserAlreadyExists> {
|
||||
async fn create_user(
|
||||
&mut self,
|
||||
user: User,
|
||||
) -> Result<Result<(), UserAlreadyExists>, BoxedError> {
|
||||
self.inner.write().await.create_user(user).await
|
||||
}
|
||||
}
|
||||
|
||||
pub trait DatabaseInterface {
|
||||
async fn get_user(&self, user: &UserRef) -> Option<User>;
|
||||
async fn create_user(&mut self, user: User) -> Result<(), UserAlreadyExists>;
|
||||
async fn get_user(&self, user: &UserRef) -> Result<Option<User>, BoxedError>;
|
||||
async fn create_user(
|
||||
&mut self,
|
||||
user: User,
|
||||
) -> Result<Result<(), UserAlreadyExists>, BoxedError>;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue