User filtered

This commit is contained in:
gabatxo1312
2026-01-30 14:24:00 +01:00
parent 3b9a5800a5
commit a4c5e8185b
5 changed files with 59 additions and 8 deletions
+16 -1
View File
@@ -1,9 +1,11 @@
use crate::models::book;
use crate::routes::book::BookForm;
use crate::routes::user::IndexQuery;
use crate::routes::user::UserForm;
use crate::state::AppState;
use crate::state::error::UserSnafu;
use sea_orm::ActiveValue::Set;
use sea_orm::Condition;
use sea_orm::DeleteResult;
use sea_orm::entity::prelude::*;
use snafu::ResultExt;
@@ -53,10 +55,23 @@ impl UserOperator {
Self { state }
}
pub async fn list(&self) -> Result<Vec<Model>, UserError> {
pub async fn all(&self) -> Result<Vec<Model>, UserError> {
Entity::find().all(&self.state.db).await.context(DBSnafu)
}
pub async fn all_filtered(&self, query: IndexQuery) -> Result<Vec<Model>, UserError> {
let mut conditions = Condition::all();
if let Some(name) = query.name {
conditions = conditions.add(Column::Name.contains(name))
}
Entity::find()
.filter(conditions)
.all(&self.state.db)
.await
.context(DBSnafu)
}
pub async fn find_by_id(&self, id: i32) -> Result<Model, UserError> {
let user: Option<Model> = Entity::find_by_id(id)
.one(&self.state.db)