2021-10-12 22:31:38 +08:00
|
|
|
use crate::{
|
2021-10-13 23:11:45 +08:00
|
|
|
entities::{
|
|
|
|
trash::{RepeatedTrash, TrashIdentifier},
|
|
|
|
view::RepeatedView,
|
|
|
|
},
|
2021-10-12 22:31:38 +08:00
|
|
|
errors::WorkspaceError,
|
2021-10-13 11:10:29 +08:00
|
|
|
services::TrashCan,
|
2021-10-12 22:31:38 +08:00
|
|
|
};
|
|
|
|
use flowy_dispatch::prelude::{data_result, Data, DataResult, Unit};
|
|
|
|
use std::{convert::TryInto, sync::Arc};
|
|
|
|
|
2021-10-13 23:11:45 +08:00
|
|
|
#[tracing::instrument(skip(controller), err)]
|
2021-10-13 11:10:29 +08:00
|
|
|
pub(crate) async fn read_trash_handler(controller: Unit<Arc<TrashCan>>) -> DataResult<RepeatedTrash, WorkspaceError> {
|
2021-10-12 22:31:38 +08:00
|
|
|
let repeated_trash = controller.read_trash()?;
|
|
|
|
data_result(repeated_trash)
|
|
|
|
}
|
2021-10-13 23:11:45 +08:00
|
|
|
|
|
|
|
#[tracing::instrument(skip(identifier, controller), err)]
|
|
|
|
pub(crate) async fn putback_trash_handler(
|
|
|
|
identifier: Data<TrashIdentifier>,
|
|
|
|
controller: Unit<Arc<TrashCan>>,
|
|
|
|
) -> Result<(), WorkspaceError> {
|
|
|
|
let _ = controller.putback(&identifier.id)?;
|
|
|
|
Ok(())
|
|
|
|
}
|
|
|
|
|
|
|
|
#[tracing::instrument(skip(identifier, controller), err)]
|
|
|
|
pub(crate) async fn delete_trash_handler(
|
|
|
|
identifier: Data<TrashIdentifier>,
|
|
|
|
controller: Unit<Arc<TrashCan>>,
|
|
|
|
) -> Result<(), WorkspaceError> {
|
|
|
|
let _ = controller.delete_trash(&identifier.id)?;
|
|
|
|
Ok(())
|
|
|
|
}
|