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)
}
}