mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
chore: add read view info event
This commit is contained in:
@ -59,6 +59,7 @@ pub fn create(folder: Arc<FolderManager>) -> Module {
|
||||
module = module
|
||||
.event(FolderEvent::CreateView, create_view_handler)
|
||||
.event(FolderEvent::ReadView, read_view_handler)
|
||||
.event(FolderEvent::ReadViewInfo, read_view_info_handler)
|
||||
.event(FolderEvent::UpdateView, update_view_handler)
|
||||
.event(FolderEvent::DeleteView, delete_view_handler)
|
||||
.event(FolderEvent::DuplicateView, duplicate_view_handler)
|
||||
@ -124,17 +125,20 @@ pub enum FolderEvent {
|
||||
#[event(input = "ViewId")]
|
||||
DuplicateView = 205,
|
||||
|
||||
#[event(input = "ViewId")]
|
||||
CloseView = 206,
|
||||
|
||||
#[event(input = "ViewId", output = "ViewInfo")]
|
||||
ReadViewInfo = 207,
|
||||
|
||||
#[event()]
|
||||
CopyLink = 206,
|
||||
CopyLink = 220,
|
||||
|
||||
#[event(input = "ViewId")]
|
||||
SetLatestView = 207,
|
||||
|
||||
#[event(input = "ViewId")]
|
||||
CloseView = 208,
|
||||
SetLatestView = 221,
|
||||
|
||||
#[event(input = "MoveFolderItemPayload")]
|
||||
MoveFolderItem = 209,
|
||||
MoveFolderItem = 230,
|
||||
|
||||
#[event(output = "RepeatedTrash")]
|
||||
ReadTrash = 300,
|
||||
|
@ -40,10 +40,11 @@ pub enum FolderEvent {
|
||||
UpdateView = 203,
|
||||
DeleteView = 204,
|
||||
DuplicateView = 205,
|
||||
CopyLink = 206,
|
||||
SetLatestView = 207,
|
||||
CloseView = 208,
|
||||
MoveFolderItem = 209,
|
||||
CloseView = 206,
|
||||
ReadViewInfo = 207,
|
||||
CopyLink = 220,
|
||||
SetLatestView = 221,
|
||||
MoveFolderItem = 230,
|
||||
ReadTrash = 300,
|
||||
PutbackTrash = 301,
|
||||
DeleteTrash = 302,
|
||||
@ -73,10 +74,11 @@ impl ::protobuf::ProtobufEnum for FolderEvent {
|
||||
203 => ::std::option::Option::Some(FolderEvent::UpdateView),
|
||||
204 => ::std::option::Option::Some(FolderEvent::DeleteView),
|
||||
205 => ::std::option::Option::Some(FolderEvent::DuplicateView),
|
||||
206 => ::std::option::Option::Some(FolderEvent::CopyLink),
|
||||
207 => ::std::option::Option::Some(FolderEvent::SetLatestView),
|
||||
208 => ::std::option::Option::Some(FolderEvent::CloseView),
|
||||
209 => ::std::option::Option::Some(FolderEvent::MoveFolderItem),
|
||||
206 => ::std::option::Option::Some(FolderEvent::CloseView),
|
||||
207 => ::std::option::Option::Some(FolderEvent::ReadViewInfo),
|
||||
220 => ::std::option::Option::Some(FolderEvent::CopyLink),
|
||||
221 => ::std::option::Option::Some(FolderEvent::SetLatestView),
|
||||
230 => ::std::option::Option::Some(FolderEvent::MoveFolderItem),
|
||||
300 => ::std::option::Option::Some(FolderEvent::ReadTrash),
|
||||
301 => ::std::option::Option::Some(FolderEvent::PutbackTrash),
|
||||
302 => ::std::option::Option::Some(FolderEvent::DeleteTrash),
|
||||
@ -103,9 +105,10 @@ impl ::protobuf::ProtobufEnum for FolderEvent {
|
||||
FolderEvent::UpdateView,
|
||||
FolderEvent::DeleteView,
|
||||
FolderEvent::DuplicateView,
|
||||
FolderEvent::CloseView,
|
||||
FolderEvent::ReadViewInfo,
|
||||
FolderEvent::CopyLink,
|
||||
FolderEvent::SetLatestView,
|
||||
FolderEvent::CloseView,
|
||||
FolderEvent::MoveFolderItem,
|
||||
FolderEvent::ReadTrash,
|
||||
FolderEvent::PutbackTrash,
|
||||
@ -140,19 +143,19 @@ impl ::protobuf::reflect::ProtobufValue for FolderEvent {
|
||||
}
|
||||
|
||||
static file_descriptor_proto_data: &'static [u8] = b"\
|
||||
\n\x0fevent_map.proto*\xc3\x03\n\x0bFolderEvent\x12\x13\n\x0fCreateWorks\
|
||||
\n\x0fevent_map.proto*\xd6\x03\n\x0bFolderEvent\x12\x13\n\x0fCreateWorks\
|
||||
pace\x10\0\x12\x14\n\x10ReadCurWorkspace\x10\x01\x12\x12\n\x0eReadWorksp\
|
||||
aces\x10\x02\x12\x13\n\x0fDeleteWorkspace\x10\x03\x12\x11\n\rOpenWorkspa\
|
||||
ce\x10\x04\x12\x15\n\x11ReadWorkspaceApps\x10\x05\x12\r\n\tCreateApp\x10\
|
||||
e\x12\r\n\tDeleteApp\x10f\x12\x0b\n\x07ReadApp\x10g\x12\r\n\tUpdateApp\
|
||||
\x10h\x12\x0f\n\nCreateView\x10\xc9\x01\x12\r\n\x08ReadView\x10\xca\x01\
|
||||
\x12\x0f\n\nUpdateView\x10\xcb\x01\x12\x0f\n\nDeleteView\x10\xcc\x01\x12\
|
||||
\x12\n\rDuplicateView\x10\xcd\x01\x12\r\n\x08CopyLink\x10\xce\x01\x12\
|
||||
\x12\n\rSetLatestView\x10\xcf\x01\x12\x0e\n\tCloseView\x10\xd0\x01\x12\
|
||||
\x13\n\x0eMoveFolderItem\x10\xd1\x01\x12\x0e\n\tReadTrash\x10\xac\x02\
|
||||
\x12\x11\n\x0cPutbackTrash\x10\xad\x02\x12\x10\n\x0bDeleteTrash\x10\xae\
|
||||
\x02\x12\x14\n\x0fRestoreAllTrash\x10\xaf\x02\x12\x13\n\x0eDeleteAllTras\
|
||||
h\x10\xb0\x02b\x06proto3\
|
||||
\x12\n\rDuplicateView\x10\xcd\x01\x12\x0e\n\tCloseView\x10\xce\x01\x12\
|
||||
\x11\n\x0cReadViewInfo\x10\xcf\x01\x12\r\n\x08CopyLink\x10\xdc\x01\x12\
|
||||
\x12\n\rSetLatestView\x10\xdd\x01\x12\x13\n\x0eMoveFolderItem\x10\xe6\
|
||||
\x01\x12\x0e\n\tReadTrash\x10\xac\x02\x12\x11\n\x0cPutbackTrash\x10\xad\
|
||||
\x02\x12\x10\n\x0bDeleteTrash\x10\xae\x02\x12\x14\n\x0fRestoreAllTrash\
|
||||
\x10\xaf\x02\x12\x13\n\x0eDeleteAllTrash\x10\xb0\x02b\x06proto3\
|
||||
";
|
||||
|
||||
static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;
|
||||
|
@ -16,10 +16,11 @@ enum FolderEvent {
|
||||
UpdateView = 203;
|
||||
DeleteView = 204;
|
||||
DuplicateView = 205;
|
||||
CopyLink = 206;
|
||||
SetLatestView = 207;
|
||||
CloseView = 208;
|
||||
MoveFolderItem = 209;
|
||||
CloseView = 206;
|
||||
ReadViewInfo = 207;
|
||||
CopyLink = 220;
|
||||
SetLatestView = 221;
|
||||
MoveFolderItem = 230;
|
||||
ReadTrash = 300;
|
||||
PutbackTrash = 301;
|
||||
DeleteTrash = 302;
|
||||
|
@ -9,7 +9,6 @@ use crate::{
|
||||
};
|
||||
use flowy_database::ConnectionPool;
|
||||
use flowy_error::{FlowyError, FlowyResult};
|
||||
|
||||
use flowy_folder_data_model::revision::{AppRevision, TrashRevision, ViewRevision, WorkspaceRevision};
|
||||
use flowy_revision::disk::{RevisionRecord, RevisionState};
|
||||
use flowy_revision::mk_revision_disk_cache;
|
||||
|
@ -10,6 +10,7 @@ use flowy_database::DBConnection;
|
||||
use flowy_error::FlowyResult;
|
||||
use flowy_folder_data_model::revision::{AppRevision, TrashRevision, ViewRevision, WorkspaceRevision};
|
||||
|
||||
/// V1Transaction is deprecated since version 0.0.2 version
|
||||
pub struct V1Transaction<'a>(pub &'a DBConnection);
|
||||
|
||||
impl<'a> FolderPersistenceTransaction for V1Transaction<'a> {
|
||||
|
@ -3,7 +3,6 @@ use crate::services::{
|
||||
persistence::{AppChangeset, FolderPersistenceTransaction, ViewChangeset, WorkspaceChangeset},
|
||||
};
|
||||
use flowy_error::{FlowyError, FlowyResult};
|
||||
|
||||
use flowy_folder_data_model::revision::{AppRevision, TrashRevision, ViewRevision, WorkspaceRevision};
|
||||
use std::sync::Arc;
|
||||
|
||||
|
@ -15,6 +15,7 @@ use crate::{
|
||||
use bytes::Bytes;
|
||||
use flowy_database::kv::KV;
|
||||
use flowy_folder_data_model::entities::view::{gen_view_id, ViewDataType};
|
||||
use flowy_folder_data_model::entities::{ViewExtData, ViewInfo};
|
||||
use flowy_folder_data_model::revision::ViewRevision;
|
||||
use flowy_sync::entities::text_block_info::TextBlockId;
|
||||
use futures::{FutureExt, StreamExt};
|
||||
@ -121,6 +122,36 @@ impl ViewController {
|
||||
Ok(view_rev)
|
||||
}
|
||||
|
||||
#[tracing::instrument(level = "debug", skip(self, view_id), fields(view_id = %view_id.value), err)]
|
||||
pub(crate) async fn read_view_info(&self, view_id: ViewId) -> Result<ViewInfo, FlowyError> {
|
||||
let view_info = self
|
||||
.persistence
|
||||
.begin_transaction(|transaction| {
|
||||
let view_rev = transaction.read_view(&view_id.value)?;
|
||||
|
||||
let items: Vec<View> = view_rev
|
||||
.belongings
|
||||
.into_iter()
|
||||
.map(|view_rev| view_rev.into())
|
||||
.collect();
|
||||
|
||||
let ext_data = ViewExtData::from(view_rev.ext_data);
|
||||
let view_info = ViewInfo {
|
||||
id: view_rev.id,
|
||||
belong_to_id: view_rev.belong_to_id,
|
||||
name: view_rev.name,
|
||||
desc: view_rev.desc,
|
||||
data_type: view_rev.data_type,
|
||||
belongings: RepeatedView { items },
|
||||
ext_data,
|
||||
};
|
||||
Ok(view_info)
|
||||
})
|
||||
.await?;
|
||||
|
||||
Ok(view_info)
|
||||
}
|
||||
|
||||
pub(crate) async fn read_local_views(&self, ids: Vec<String>) -> Result<Vec<ViewRevision>, FlowyError> {
|
||||
self.persistence
|
||||
.begin_transaction(|transaction| {
|
||||
|
@ -35,13 +35,12 @@ pub(crate) async fn read_view_handler(
|
||||
}
|
||||
|
||||
pub(crate) async fn read_view_info_handler(
|
||||
_data: Data<ViewId>,
|
||||
_controller: AppData<Arc<ViewController>>,
|
||||
data: Data<ViewId>,
|
||||
controller: AppData<Arc<ViewController>>,
|
||||
) -> DataResult<ViewInfo, FlowyError> {
|
||||
// For the moment, app and view can contains lots of views. Reading the view
|
||||
// belongings using the view_id.
|
||||
// view.belongings = controller.read_views_belong_to(&view_id.value).await?;
|
||||
todo!()
|
||||
let view_id: ViewId = data.into_inner();
|
||||
let view_info = controller.read_view_info(view_id.clone()).await?;
|
||||
data_result(view_info)
|
||||
}
|
||||
|
||||
#[tracing::instrument(level = "debug", skip(data, controller), err)]
|
||||
|
Reference in New Issue
Block a user