Add user_by_discord_user_id function to repository
This commit is contained in:
@@ -6,6 +6,8 @@ pub trait UserRepository {
|
|||||||
|
|
||||||
async fn user(&mut self, id: i32) -> Result<Option<User>, RepositoryError<Self::BackendError>>;
|
async fn user(&mut self, id: i32) -> Result<Option<User>, RepositoryError<Self::BackendError>>;
|
||||||
|
|
||||||
|
async fn user_by_discord_user_id(&mut self, id: u64) -> Result<Option<User>, RepositoryError<Self::BackendError>>;
|
||||||
|
|
||||||
async fn insert_user(&mut self, new_user: NewUser) -> Result<User, RepositoryError<Self::BackendError>>;
|
async fn insert_user(&mut self, new_user: NewUser) -> Result<User, RepositoryError<Self::BackendError>>;
|
||||||
|
|
||||||
async fn update_user(&mut self, user: User) -> Result<Option<User>, RepositoryError<Self::BackendError>>;
|
async fn update_user(&mut self, user: User) -> Result<Option<User>, RepositoryError<Self::BackendError>>;
|
||||||
|
|||||||
@@ -26,6 +26,18 @@ impl UserRepository for MysqlRepository<'_> {
|
|||||||
.map_err(|err| RepositoryError(BackendError::from(err)))
|
.map_err(|err| RepositoryError(BackendError::from(err)))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async fn user_by_discord_user_id(&mut self, id: u64) -> Result<Option<User>, RepositoryError<Self::BackendError>> {
|
||||||
|
let model_id = id as i64;
|
||||||
|
|
||||||
|
users::dsl::users
|
||||||
|
.filter(users::dsl::discord_user_id.eq(model_id))
|
||||||
|
.first::<ModelUser>(&mut self.conn)
|
||||||
|
.await
|
||||||
|
.optional()
|
||||||
|
.map(|option| option.map(User::from))
|
||||||
|
.map_err(|err| RepositoryError(BackendError::from(err)))
|
||||||
|
}
|
||||||
|
|
||||||
async fn insert_user(&mut self, new_user: NewUser) -> Result<User, RepositoryError<Self::BackendError>> {
|
async fn insert_user(&mut self, new_user: NewUser) -> Result<User, RepositoryError<Self::BackendError>> {
|
||||||
let model_new_user = ModelNewUser::from(new_user);
|
let model_new_user = ModelNewUser::from(new_user);
|
||||||
|
|
||||||
|
|||||||
@@ -26,6 +26,18 @@ impl UserRepository for PostgresRepository<'_> {
|
|||||||
.map_err(|err| RepositoryError(BackendError::from(err)))
|
.map_err(|err| RepositoryError(BackendError::from(err)))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async fn user_by_discord_user_id(&mut self, id: u64) -> Result<Option<User>, RepositoryError<Self::BackendError>> {
|
||||||
|
let model_id = id as i64;
|
||||||
|
|
||||||
|
users::dsl::users
|
||||||
|
.filter(users::dsl::discord_user_id.eq(model_id))
|
||||||
|
.first::<ModelUser>(&mut self.conn)
|
||||||
|
.await
|
||||||
|
.optional()
|
||||||
|
.map(|option| option.map(User::from))
|
||||||
|
.map_err(|err| RepositoryError(BackendError::from(err)))
|
||||||
|
}
|
||||||
|
|
||||||
async fn insert_user(&mut self, new_user: NewUser) -> Result<User, RepositoryError<Self::BackendError>> {
|
async fn insert_user(&mut self, new_user: NewUser) -> Result<User, RepositoryError<Self::BackendError>> {
|
||||||
let model_new_user = ModelNewUser::from(new_user);
|
let model_new_user = ModelNewUser::from(new_user);
|
||||||
|
|
||||||
|
|||||||
@@ -26,6 +26,18 @@ impl UserRepository for SqliteRepository<'_> {
|
|||||||
.map_err(|err| RepositoryError(BackendError::from(err)))
|
.map_err(|err| RepositoryError(BackendError::from(err)))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async fn user_by_discord_user_id(&mut self, id: u64) -> Result<Option<User>, RepositoryError<Self::BackendError>> {
|
||||||
|
let model_id = id as i64;
|
||||||
|
|
||||||
|
users::dsl::users
|
||||||
|
.filter(users::dsl::discord_user_id.eq(model_id))
|
||||||
|
.first::<ModelUser>(&mut self.conn)
|
||||||
|
.await
|
||||||
|
.optional()
|
||||||
|
.map(|option| option.map(User::from))
|
||||||
|
.map_err(|err| RepositoryError(BackendError::from(err)))
|
||||||
|
}
|
||||||
|
|
||||||
async fn insert_user(&mut self, new_user: NewUser) -> Result<User, RepositoryError<Self::BackendError>> {
|
async fn insert_user(&mut self, new_user: NewUser) -> Result<User, RepositoryError<Self::BackendError>> {
|
||||||
let model_new_user = ModelNewUser::from(new_user);
|
let model_new_user = ModelNewUser::from(new_user);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user