event_handler.rs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. use crate::manager::GridManager;
  2. use flowy_error::FlowyError;
  3. use flowy_grid_data_model::entities::{
  4. Cell, Grid, GridId, QueryFieldPayload, QueryRowPayload, RepeatedField, RepeatedRow,
  5. };
  6. use lib_dispatch::prelude::{data_result, AppData, Data, DataResult};
  7. use std::sync::Arc;
  8. #[tracing::instrument(level = "debug", skip(data, manager), err)]
  9. pub(crate) async fn get_grid_data_handler(
  10. data: Data<GridId>,
  11. manager: AppData<Arc<GridManager>>,
  12. ) -> DataResult<Grid, FlowyError> {
  13. let grid_id: GridId = data.into_inner();
  14. let editor = manager.open_grid(grid_id).await?;
  15. let grid = editor.grid_data().await;
  16. data_result(grid)
  17. }
  18. #[tracing::instrument(level = "debug", skip(data, manager), err)]
  19. pub(crate) async fn get_rows_handler(
  20. data: Data<QueryRowPayload>,
  21. manager: AppData<Arc<GridManager>>,
  22. ) -> DataResult<RepeatedRow, FlowyError> {
  23. let payload: QueryRowPayload = data.into_inner();
  24. let editor = manager.get_grid_editor(&payload.grid_id)?;
  25. let repeated_row = editor.get_rows(payload.row_orders).await?;
  26. data_result(repeated_row)
  27. }
  28. #[tracing::instrument(level = "debug", skip(data, manager), err)]
  29. pub(crate) async fn get_fields_handler(
  30. data: Data<QueryFieldPayload>,
  31. manager: AppData<Arc<GridManager>>,
  32. ) -> DataResult<RepeatedField, FlowyError> {
  33. let payload: QueryFieldPayload = data.into_inner();
  34. let editor = manager.get_grid_editor(&payload.grid_id)?;
  35. let repeated_field = editor.get_fields(payload.field_orders).await?;
  36. data_result(repeated_field)
  37. }
  38. #[tracing::instrument(level = "debug", skip(data, manager), err)]
  39. pub(crate) async fn create_row_handler(
  40. data: Data<GridId>,
  41. manager: AppData<Arc<GridManager>>,
  42. ) -> Result<(), FlowyError> {
  43. let id: GridId = data.into_inner();
  44. let editor = manager.get_grid_editor(id.as_ref())?;
  45. let _ = editor.create_row().await?;
  46. Ok(())
  47. }
  48. #[tracing::instrument(level = "debug", skip(data, manager), err)]
  49. pub(crate) async fn update_cell_handler(
  50. data: Data<Cell>,
  51. manager: AppData<Arc<GridManager>>,
  52. ) -> Result<(), FlowyError> {
  53. let _cell: Cell = data.into_inner();
  54. // let editor = manager.get_grid_editor(id.as_ref())?;
  55. // let _ = editor.create_empty_row().await?;
  56. Ok(())
  57. }