43 lines
1.0 KiB
Rust
43 lines
1.0 KiB
Rust
use sea_orm::{DatabaseConnection};
|
|
|
|
use super::model::user::{Model, Column};
|
|
|
|
use sea_orm::prelude::*;
|
|
use sea_orm::query::*;
|
|
|
|
use serde::{Serialize, Deserialize};
|
|
|
|
use super::model::prelude::*;
|
|
|
|
#[derive(Clone, Debug)]
|
|
pub(crate) struct UserController {
|
|
database: DatabaseConnection
|
|
}
|
|
|
|
impl UserController {
|
|
pub fn new(database: DatabaseConnection) -> Self {
|
|
Self { database: database }
|
|
}
|
|
|
|
pub async fn validate_password(&self, username: String, password: String) -> Result<bool, sea_orm::DbErr> {
|
|
let maybe_user = User::find()
|
|
.filter(Column::Name.eq(username))
|
|
.one(&self.database)
|
|
.await?;
|
|
|
|
match maybe_user {
|
|
Some(user) => todo!(),
|
|
None => Ok(false),
|
|
}
|
|
}
|
|
|
|
pub async fn list_all(&self, page: usize, count_per_page: usize) -> Result<Vec<Model>, sea_orm::DbErr> {
|
|
let users = User::find()
|
|
.paginate(&self.database, count_per_page)
|
|
.fetch_page(page)
|
|
.await?;
|
|
|
|
Ok(users)
|
|
}
|
|
}
|