init
This commit is contained in:
@@ -1,9 +1,6 @@
|
||||
use crate::models::server_item_order;
|
||||
use crate::models::server_item_order::OrderedResourceType;
|
||||
use crate::repositories::{AnyResult, RepositoryContext};
|
||||
use sea_orm::{
|
||||
ActiveModelTrait, ColumnTrait, EntityTrait, QueryFilter, QueryOrder, TransactionTrait,
|
||||
};
|
||||
use sea_orm::{ColumnTrait, EntityTrait, QueryFilter, QueryOrder};
|
||||
use std::sync::Arc;
|
||||
use uuid::Uuid;
|
||||
|
||||
@@ -17,29 +14,9 @@ impl ServerItemOrderRepository {
|
||||
pub async fn get_by_server(&self, server_id: Uuid) -> AnyResult<Vec<server_item_order::Model>> {
|
||||
Ok(server_item_order::Entity::find()
|
||||
.filter(server_item_order::Column::ServerId.eq(server_id))
|
||||
.order_by_asc(server_item_order::Column::ParentCategoryId)
|
||||
.order_by_asc(server_item_order::Column::OrderKey)
|
||||
.all(&self.context.db)
|
||||
.await?)
|
||||
}
|
||||
|
||||
/// Réorganise en bloc (reorder) une liste d'éléments dans un serveur ou une catégorie
|
||||
pub async fn update_orders(
|
||||
&self,
|
||||
server_id: Uuid,
|
||||
items: Vec<(Uuid, OrderedResourceType, Option<Uuid>, i64)>, // (resource_id, resource_type, parent_category_id, order_key)
|
||||
) -> AnyResult<()> {
|
||||
self.context
|
||||
.db
|
||||
.transaction::<_, (), anyhow::Error>(|txn| {
|
||||
Box::pin(async move {
|
||||
for (resource_id, res_type, parent_cat_id, order_key) in items {
|
||||
// Logique de mise à jour / upsert des order_key
|
||||
}
|
||||
Ok(())
|
||||
})
|
||||
})
|
||||
.await?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user